中末尾最后一个
字符
。
while(*p2!='\0') p2++ 上面语句的意思是,找到这个字符串的结束位置。此时,p2指向了'\0'标志的位置,并不是字符串的最后一个位置,还要向前退一步,即p2-- 这样,p2所指的就是字符串的最后一个字符。错误1:
题目
要求输入字符数小于255,而数组只开了254,忽略了'\0'符号,应改为255数组
错误2: 题目所说的字符串可能包含空格,但是用std::cin输入字符串,空格后的字符串将丢失,应改为std::cin.get()函数或std::cin.getline()函数输入;
错误3:题目要求输入字符串,没有说只包括字母,也许还有其他字符,如标点符号等等。综上所述,修改代码:
#include <iostream>
#include <cstring>
int main()
{
char str[255] = {0}
char t = 0
std::cin.getline(str, 255)
for(int i = 0, j = strlen(str) - 1 i < j ++i, --j)
{
t = str[i]
str[i] = str[j]
str[j] = t
}
std::cout << str << '\n'
return 0
欢迎分享,转载请注明来源:内存溢出