输入一个英文句子,翻转句子中的单词,要求单词内的字符顺序不变。
如:I am a student. 转换成 student. a am I
算法分析:
1、通过ReverseString(s,0,5)交换字符串第0位和第5位的字符,将I am a student. 转换成a am I student.
2、然后将字符向左移动一位变成 am I student.a
3、顺序向左移动7次就成为了student. a am I
以上代码运行到s[from]=s[to]会出现
projectOne.exe 中的 0x0086193f 处最可能的异常: 0xC0000005: 写入位置 0x00867838 时发生访问冲突
projectOne.exe 中的 0x0086193f 处有未经处理的异常: 0xC0000005: 写入位置 0x00867838 时发生访问冲突
不知道原因
由于char *s="I am a student.";是一个字符串常量,是保存在static内存块里,不能通过指针修改
所以需要把它改成:char arr[]="I am a student.";
方法二:
先翻转每个单词,然后再翻转整个句子。如先将“I am a student.”反转为“I ma a .tneduts”,然后再对中间结果“I ma a .tneduts”整体翻转,即为 “student. a am I”。
注意reverseString(arr, 0, n-1);//这边不能写成n,数组的下标比实际长度小1