gpt4 book ai didi

c++ - 用指针反转字符串

转载 作者:太空宇宙 更新时间:2023-11-04 14:47:59 28 4
gpt4 key购买 nike

我正在尝试编写一个简单的程序,该程序将使用指针反转用户输入。这是我第一次使用指针,理论上我的程序似乎可以工作:有一个数组,将用户输入写入数组,将一个指针指向头部,将另一个指针指向末尾,然后让 while 循环执行休息。但是,我的程序无法正常运行。我的问题是,我到底做错了什么?

这是我的代码:

#include <iostream>
#include <string>
using namespace std;

int main() {

char user_input[1000] = " ";

cout << "Enter a word to be reversed: " << endl;
cin >> user_input;

int myChar = sizeof(user_input) - 1;

char *start = user_input;
char *end = user_input + myChar - 1;

while (start < end) {
char save = *start;
*start = *end;
*end = save;

start++;
end--;
}

cout << user_input;

}

And my output:

Enter a word to be reversed:
hello <--- my input
<--- no output

最佳答案

线

int myChar = sizeof(user_input) - 1;

应该是

#include <string.h>

int myChar = strlen(user_input);

目前,您正在反转数组中的所有 1000 个字符。超出输入字符串末尾的字符不会被初始化,因此您应该只反转用户输入的字符数。 strlen() 为您找到长度。

另一种选择:使用标准库。

关于c++ - 用指针反转字符串,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33500442/

28 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com