/**将一句话的单词进行倒置,标点符号不倒换。
*比如:“I am a boy.”,输出“boy. a am I”。
*/
#include<stdio.h>
#include<string.h>
#include<stdlib.h>
#define SIZE 100
void func(char* input)
{
int i;
char temp;
int begin,end;
int n=strlen(input);
//第一次进行倒序输出
for(i=0;i<n/2;i++)
{
temp=input[i];
input[i]=input[n-i-1];
input[n-i-1]=temp;
}
printf("Reverse string is:%s\n",input);
i=0;
while(input[i]!='\0')
{
//单词内部调整顺序
if(input[i]!=' ')
{
begin=i;
while(input[i]!=' ' && input[i]!='\0')
i++;
i=i-1;
end=i;
while(begin<end)
{
temp=input[begin];
input[begin]=input[end];
input[end]=temp;
end--;
begin++;
}
}
i++;//继续循环
}
}
int main(void)
{
char input[SIZE];
printf("Please enter a string:");
gets(input);
func(input);
printf("The result string is:%s\n",input);
system("pause");//如果不加这一句的话,运行exe文件的时候只会一闪而过!!!
return 0;
}
【字符串操作】13.将一句话单词进行倒置
最新推荐文章于 2023-02-16 22:34:33 发布
本文介绍了一种算法,能够将输入字符串中的单词顺序进行倒置,同时确保字符串中的标点符号位置不变。通过两次遍历实现:首先对整个字符串进行倒序输出;然后对每个单词内部再次进行倒序排列。
2179

被折叠的 条评论
为什么被折叠?



