题目描述:
有一个字符串是这样的:"student a am i",程序实现将字符串转换为“i am a student”这样的字符串。
实现思路:
1.将每个单词翻转。
2.然后整天字符串翻转。
具体实现:
#include <stdio.h>
#include <string.h>
//翻转指定字符串
void rvs_string(char *left,char *right)
{
char *p1 = left;
while(left<right)
{
char tmp = *left;
*left = *right;
*right = tmp;
left++;
right--;
}
}
//翻转单词序
void reverse(char *str)
{
while(*str != '\0')
{
char *tmpr = str;
char *tmpl = str;
while((*tmpr != '\0') && (*tmpr != ' '))
{
tmpr++;
}
rvs_string(tmpl,tmpr-1);
str = tmpr+1;
}
}
int main()
{
char p[20] = "student a am i";
reverse(p);
rvs_string(p,p+strlen(p)-1);
printf("%s\n",p);
return 0;
}
技术难点:
1.对指针的使用。使用指针操作字符串。
2.字符串结束标志判断。
结果演示: