题意
够将一从左到右书写的文字自动转成从右向左的顺序(单词内部字母顺序也逆)
输入第一行:n<100,需要逆序的行数
随后n行文字(每行文字长度不超过200个字符)
思路
读入一行,存进字符数组,逆序输出
笔记
- 读入整行字符串
转自C/C++如何整行读入字符串?.
方法一:scanf()读入char[]
scanf("%[^\n]",&str);
//%[ ]读入此集合所限定的字符
//%[^ ]读取不在^后面的字符,即遇到^后的字符停止
getchar(); //吸收回车
方法二:getchar()读入char[]
int i=0;
while((str[i]=getchar())!='\n')
i++; //逐一读入字符
getchar();
方法三:gets()读入char[]
gets(str); //读入时不需要考虑换行符\n
方法四:getline()读入string
getline(cin,str);//读入string
- 输入n后换行,此时的换行符会被
gets()
读走,造成后面只读了n-1行,因此需要getchar()
吸收一下 strlen(str)
返回字符数组长度
代码
#include<cstdio>
#include<string.h>
using namespace std;
int main(){
char str[200];
int n, i;
scanf("%d", &n);
getchar();
while(n--){
i = 0;
gets(str);
for(int l=strlen(str)-1; l>=0; l--)
printf("%c", str[l]);
printf("\n");
}
return 0;
}