gpt4 book ai didi

c++ - 字符串不会打印

转载 作者:太空宇宙 更新时间:2023-11-04 15:39:26 26 4
gpt4 key购买 nike

我一直在 coderbyte 上做编程挑战,在做一个时遇到了一个问题。我想从字符串中分离出一个词,对其进行一些检查,然后移动到另一个词。我要发布的代码应该只接受第一个单词并将其打印在屏幕上。当我运行它时,它不打印任何东西。我想也许我在 while 循环中做错了什么,所以我做了一个简单的测试。假设我的输入是“这是一个测试句子”,而不是单词(在 cout 中),我输入单词 [0]。然后它打印“T”就好了。你能找出问题所在吗?

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

int Letters(string str) {
int i=0;
int len=str.length();
string word;
while(i<len){
if(isspace(str[i])){word[i]='\0'; break;}
word[i]=str[i];
i++;
}
cout<<word;
return 0;
}

int main() {
int test;
string str;
getline(cin, str);
test=Letters(str);
return 0;
}

最佳答案

string word;

是默认构造的,最初是空的。在 while 循环中,您尝试执行以下操作:

word[i] = str[i];

这意味着您试图访问尚未分配的内存,导致未定义的行为

尝试:

word.append(str[i]); 

关于c++ - 字符串不会打印,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26020512/

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