题目描述
输入一个句子(一行),将句子中的每一个单词翻转后输出。
输入格式
只有一行,为一个字符串,不超过 500 个字符。单词之间以空格隔开。
输出格式
翻转每一个单词后的字符串,单词之间的空格需与原文一致。
注意
字符串开头和结尾可能有空格。
Sample Input
hello world
Sample Output
olleh dlrow
思路
输入一行带空格的字符串,每个单词倒序输出,倒序输出就是从后往前输出。
C语言代码:
#include <string.h>
#include <stdio.h>
char s[10005];
int main()
{
int len, position, sum = 0, i, j;
gets(s); //输入
len = strlen(s);//求字符串长度
s[len] = ' '; //末尾加一空格方便计算
for(i = 0; i <= len; i++)
{
if(s[i] != ' ') sum++; //计算单词长度
else
{
position = i; //记录单词末位置
for(j = 1; j <= sum; j++) //倒序输出
printf("%c", s[--position]);
sum = 0;//计数器归零
if(i != len) printf(" ");
}
}
printf("\n");
return 0;
}
C++代码:
#include<bits/stdc++.h>
using namespace std;
int main()
{
char a[510];
cin.getline(a, 510);
strcat(a, " ");
int len = strlen(a), pos1 = 0, pos2;
for(int i = 0; i < len; i++)
if(a[i] == ' ')
{
pos2 = i;
for(int j = pos2 - 1; j >= pos1; j--)
cout << a[j];
cout << " ";
pos1 = pos2 + 1;
}
return 0;
}
没有C语言基础的同学们,可以先学习一下C语言语法,我会整理好,后面发出来
我已经写好了,可以去C语言程序设计专栏看第一周的内容。