目录
解题分析:
- 题目要求:
- 有一个字符数组的内容为:"student a am i",请你将数组的内容改为"i am a student".
- 要求:不能使用库函数。只能开辟有限个空间(空间个数和字符串的长度无关)。
代码示例:
-
#include<windows.h> #include<stdio.h> //逆置 void reverse(char *left, char *right){ if (left != 0 || right != 0) { while (left < right){ char tmp = *left; *left = *right; *right = tmp; left++; right--; } } } void reverse_str(char *str, int len){ if (str == "") return; reverse(str, str + len - 1);//整体逆置 while (*str != '\0') { char *pCur = str; if ((*str != '\0') || (*str != ' ')) { str++; } reverse(pCur, str - 1);//单词逆置 } } int main(){ char str[] = "student a am i"; printf(" string=%s\n", str); reverse_str(str, strlen(str)); printf(" string=%s\n", str); system("pause"); return 0; }
运行结果:
-