gpt4 book ai didi

c++ - 无法将字符串转换为字符数组

转载 作者:行者123 更新时间:2023-11-30 01:09:38 26 4
gpt4 key购买 nike

我正在尝试将带空格的字符串转换为不带空格的字符数组。

这是我尝试过的

string str;
cout << "Enter a string: ";
getline(cin, str);
int TempNumOne=str.size();
char Filename[100];
for (int a=0;a<=TempNumOne;a++)
{
cout<<str[a]<<endl;
if(str[a]!=' ')
Filename[a]=str[a];
}

cout<<Filename;

输出看起来像这样

Enter a string: hello world
h
e
l
l
o

w
o
r
l
d

hello

只有 hello 被存储。为什么会发生这种情况,我该如何解决?

最佳答案

这是因为:

  if(str[a]!=' ')
Filename[a]=str[a];

在“hello world”中,str[4]ostr[6]w。上面的代码将:将o存入Filename[4],将w存入Filename[6],而不是 Filename[5]。计算机只做你告诉它做的事,现在是你想让它做的事。您的逻辑确实跳过了空格,但它所做的只是没有将其复制到 Filename 缓冲区中的相应位置。这不足以完成给定的任务。

要正确执行此操作,您需要维护一个单独的索引变量,将其命名为 b,例如将其初始化为 0,然后:

 if(str[a]!=' ')
Filename[b++]=str[a];

并且不要忘记在结尾处以 null 终止 Filename

关于c++ - 无法将字符串转换为字符数组,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39936961/

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