</pre><p>关于字符串的翻转问题,首先确定大体思路为先把整个句子当成单词进行翻转,然后再把内部单词进行翻转,具体实现代码如下</p><pre name="code" class="cpp">#include <stdio.h>
#include <stdlib.h>
//如何翻转一个句子 首先完成整个句子的翻转然后完成内部单词的二次翻转
void Reverse(char* str,int begin,int end)
{
char tmp;
while(begin < end){
tmp = str[begin];
str[begin] = str[end];
str[end] = tmp;
begin++;
end--;
}
}
void Reverse_second(char* str,int len)
{
int begin,i,j;
for(i=0;i<len;){
begin = i;
for (j=i;j<len;j++)
if(str[j]==' ')
break;
Reverse(str,begin,j-1);
i = j+1;
}
}
//判断字符串长度
int RecurLength(char* str){
if(str[0]=='\0')//字符串以\0结尾
return 0;
else
return RecurLength(str+1)+1;
}
int main(){
char str[]="ni hao sb abc dfvsdfcs fsdc";
//FindTimes(str);
Reverse(str,0,RecurLength(str)-1);
Reverse_second(str,RecurLength(str));
printf("%s \n",str);
return 0;
}
字符串的翻转问题
最新推荐文章于 2022-05-08 23:06:01 发布