其实思路很简单,就是利用一个中间变量,将字符串的第一个字符和最后一个字符对调,直到到达字符串中间结束,实现代码如下:
#include<stdio.h> #include<string.h> // 反转字符串 void reverseString(char* s, int sSize){ int start = 0; // 获取左边字符串 int end = sSize - 1; // 获取右边字符串 char tempchar = 0; // 用于存储待交换的临时数据 // 判断字符串长度如果是0或1,则反转后的字符串为本身 if(sSize == 0 || sSize == 1) s = s; // 字符串对调 while(start < end){ // 是否到达中间 // 对调 tempchar = s[start]; s[start] = s[end]; s[end] = tempchar; // 移动指向下一个 ++start; --end; } // 输出反转后的字符串 printf("反转后的字符串为:%s\r\n", s); } int main(void) { int len = 0; char s[10] = {0}; printf("请输入字符串:"); scanf("%s", s); len = strlen(s); printf("你输入的字符串为:%s, 字符串长度为%d\r\n", s, len); reverseString(s, len); return 0; }