本题目要求将输入字符串翻转
输入格式:
输入一行字符串,所有内容保持相对位置,将单词翻转。字符串总长度未知,单词数量未知,每个单词不超过20个字母。测试数据保证输入的字符只含英文字母和空格。
输出格式:
进行翻转操作后的字符串,因出题人老懒鬼,末尾记得带空格哦(bushi
输入样例:
hello world
输出样例:
olleh dlrow
解析:这个翻转单词是比较难的,首先就是读入带空格字符串时需要用到gets()函数
然后对于单词是位置不变,但是单词在原位进行翻转,就是一个比较注意的点,这里主要是利用while条件筛选实现一个单词一个单词的读入,当然是设置了一个数组temp用来放读入的单词,然后倒序输出,还要记得单词和单词之间要有空格,最后就是注意一定要j=0,不然会影响下一次单词的录入和输出。
代码:
#include<stdio.h>
#include<string.h>
int main()
{
char num[1001];
gets(num);//整个字符串的输入,包括空格
char temp[1001];
int i=0,j=0;
while(i<strlen(num))
{
if(num[i]==' '&&num[i]!='\0')//当遇到空格的时候就是相当于temp【】停止读入
{
i++;
}
while(num[i]!=' '&&num[i]!='\0')//这里就是用while循环让temp数组读入了第一个单词hello
{
temp[j]=num[i];//接着他在第二次循环读入了第二个单词
i++;
j++;
}
for(int k=j-1;k>=0;k--)//将单词倒序输出
{
printf("%c",temp[k]);
}
printf(" ");//这个就是输出时,第一个单词和第二个单词之间的空格
j=0;//最后一定要恢复j=0,以便第二个单词的读入
}
return 0;
}