题目:
7-59 字符串逆序 (15 分)
输入一个字符串,对该字符串进行逆序,输出逆序后的字符串。
输入格式:
输入在一行中给出一个不超过80个字符长度的、以回车结束的非空字符串。
输出格式:
在一行中输出逆序后的字符串。
输入样例:
Hello World!
输出样例:
!dlroW olleH
分析:
1、读取字符串
2、倒序输出
1 #include<stdio.h> 2 #include<string.h> 3 #define N 81 4 int main() { 5 int i; 6 char original[N] ; 7 gets(original); 8 for(i=strlen(original)-1;i>=0;i--){ 9 printf("%c",original[i]); 10 } 11 return 0; 12 }
注意N是81不是80
网友程序(博客“云上明月”):
1 #include <stdio.h> 2 #include <string.h> 3 #define MAX 81 4 int main(){ 5 char str[MAX], temp; 6 int i; 7 //scanf("%s", str); 8 //以%s格式无法输入带空格的字符串 9 gets(str); 10 for(i=0; i<strlen(str)/2; i++){ 11 temp = str[i]; 12 str[i] = str[strlen(str)-1-i]; 13 str[strlen(str)-1-i] = temp; 14 } 15 printf("%s", str); 16 17 return 0; 18 }
直接对称交换,统一了奇偶,注意下标从0开始,从1开始的话for中条件改为<=,str[i]=str[strlen(str)+1-i]