gpt4 book ai didi

c++ - 无法弄清楚为什么不计算空格数

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

我一直在教学习 c++,我一直在尝试制作一个程序,该程序接受一串字符并使用指针删除空格。一切正常,但我希望它输出删除的空格数。在我疲惫的双眼中,代码看起来完全正确。我有许多空格定义为空格。非常不言自明我正在尝试做什么。任何帮助将不胜感激! :)

#include <iostream> 

using namespace std;

int stripWhite(char *str);


int main()
{
char str[100];
cin.getline(str, 99); // save room for the null character.


stripWhite(str);
cout << str << endl;

cout << "I removed " << stripWhite(str) << " from this sentence.";



return 0;
}


int stripWhite(char *str)
{
char *p;
int spaces = 0;

for (p = str; *str != '\0'; ++str)
{
if (*str != 0x20)
{
*p++ = *str;

}
else
{
spaces++;

}

}
*p = '\0';

return spaces;
}

最佳答案

因为您在字符串上 两次 调用了 stripWhite(第一次丢弃了删除的数字)所以很明显,第二次就没有什么可以删除的了。

你需要调用一次并保存返回值,比如:

int count = stripWhite(str);
cout << str << endl;

cout << "I removed " << count << " from this sentence.";

关于c++ - 无法弄清楚为什么不计算空格数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26199796/

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