例如,如果我输入“This is a string” 我应该得到输出为“字符串a是这个” 我无法知道如何做到这一点
答案 0 :(得分:9)
首先将字符串反转到位
然后将每个单词翻转到位(单词用空格分隔)
答案 1 :(得分:1)
您需要找到所有单词,然后以相反的顺序打印它们。记住它们被空格隔开。 ;)
答案 2 :(得分:1)
#include<stdio.h>
void Reverse(char *,char * );
char str[100];
void main(){
char *start,*end,i=0;
printf("\nEnter: ");
scanf("%[^\n]s",str); //similar to gets()
start=str;
while(*(str+i)!='\0') i++;
end=str+i-1;
Reverse(start,end);
printf("\nstr:%s",str);
end=str;
for(i=0;*(str+i)!='\0';i++){
if(*(str+i)==' ' ){
Reverse(start,end-1);
start=end+1;
end=start;
continue;
}
end++;
}
Reverse(start,end-1);
printf("\nstr:%s",str);
}
void Reverse(char *start,char *end){
char temp=0,i=0;
while(start<end) {
temp=*start;
*start=*end;
*end=temp;
start++;
end--;
}
}