(C++)现有一个字符串以字符 0 为结尾,其中包含一些空格和回车,现在希望 统计该字符串中空格与回车的数目,并将此字符串中的空格删除、将回车替换为空 格输出。字符串由大小字母、空格和回车组成。 输入样例: Ji suan ke iiiii Suan Tou j un0 输出样例: 9 2 Jisuanke iiiii SuanToujun
时间: 2023-06-20 11:07:47 浏览: 180
可以使用两个变量分别记录空格和回车的数量,然后遍历字符串,遇到空格或回车就增加对应的变量。同时,可以使用另外一个字符串来存放处理后的结果,遇到回车就替换为空格,遇到空格就跳过。最后输出统计结果和处理后的字符串即可。
代码实现如下:
```c++
#include <iostream>
#include <cstring>
using namespace std;
int main() {
char str[100];
cout << "请输入字符串:";
cin.getline(str, 100);
int spaceCount = 0, enterCount = 0;
char result[100];
int len = strlen(str);
int j = 0;
for (int i = 0; i < len; i++) {
if (str[i] == ' ') {
spaceCount++;
continue;
}
if (str[i] == '\r') {
enterCount++;
result[j++] = ' ';
continue;
}
result[j++] = str[i];
}
result[j] = '\0';
cout << "空格数量:" << spaceCount << endl;
cout << "回车数量:" << enterCount << endl;
cout << "处理后的字符串:" << result << endl;
return 0;
}
```
注意,这里使用了 `cin.getline()` 函数来读取含有空格和回车的字符串,而不是 `cin`。因为 `cin` 遇到空格或回车就会停止读取,而 `getline()` 可以读取整行字符串。
阅读全文