要求是将“i am student”,反转之后变成“student am i”.
思路是这样的:可以先将整个字符串反转,变成”tneduts ma i”;然后根据空格将字符串分成几段处理,分别把这几小段再反转过来就行了。完整C代码如下:
#include <stdio.h>
#include <string.h>
//该函数用于将str完整的反转
void reverse(char str[]){
int len = strlen(str);
for(int i=0;i<len/2;i++){
char temp = str[i];
str[i]= str[len-i-1];
str[len-i-1] = temp;
}
}
//将字符串按照单词反转
void convert_str(char str[]){
reverse(str);
int len = strlen(str);
int i,j,k=0;
while(k<len){
i=j=k;
while(str[j]!=' '&& str[j]!='\0'){
j++;
}
k=j+i;
j--;
for(;i<j;i++,j--)
{
char temp=str[i];
str[i]=str[j];
str[j]=temp;
}
}
}
int main(){
char str[]="i am student";
convert_str(str);
puts(str);
}