写一个函数,使输人的一个字符串按反序存放,在主函数中输入和输出字符串。
#include <stdio.h> #include<stdlib.h> #include<string.h> #include<math.h> #define N 50 void change(char* p,int n); int main(void) { char s1[N]; int n; puts("请输入一个字符串"); gets(s1); n = strlen(s1); puts("正序"); printf("%s", s1); change(s1,n); puts("逆序"); printf("%s", s1); return 0; }// puts("");
void change(char* p, int n) { int begin = 0, end = n-1; char t; while (end >= begin) { t = *(p + begin); *(p + begin) = *(p + end); *(p + end) = t; begin++; end--; }
}
题目解析及答案:
用户登录可进行刷题及查看答案
要把一个字符串反序存放,其实就是对字符串做一个逆序操作,操作过程为收尾字符交换,直到把所有字符全部交换完毕。
#include<stdio.h> void ReverseString(char str[]) { int start, end; char tmp; start = 0; end = strlen(str)-1; //字符数组小标从0开始,所以-1 while(start < end) { tmp = str[start]; str[start] = str[end]; str[end] = tmp; start++; end--; } } int main() { char str[100] = {0}; printf("请输入一个字符串:>"); scanf("%s", str); printf("原始字符串为:> %s\n", str); ReverseString(str); printf("反序字符串为:> %s\n", str); return 0; }
登录后提交答案