c++从键盘输入一个字符串,删除字符串中的所有空格
时间: 2023-06-10 16:07:05 浏览: 464
可以使用字符串的特性来实现删除空格的功能,具体步骤如下:
1. 从键盘输入字符串并存储到一个字符数组中。
2. 定义一个新的字符数组,用于存储删除空格后的字符串。
3. 遍历原始字符串,将非空格字符添加到新的字符数组中。
4. 最后在新的字符数组后面添加一个结束符 '\0'。
以下是一个 C 语言的代码示例:
```c
#include <stdio.h>
#include <string.h>
int main() {
char str[100], new_str[100];
int i, j = 0;
printf("Enter a string: ");
gets(str);
for (i = 0; str[i] != '\0'; i++) {
if (str[i] != ' ') {
new_str[j] = str[i];
j++;
}
}
new_str[j] = '\0';
printf("Modified string: %s\n", new_str);
return 0;
}
```
需要注意的是,上述代码中使用了 gets() 函数读取输入字符串,但该函数存在安全漏洞,建议使用 fgets() 函数代替。另外,如果输入的字符串长度超过了数组的大小,可能会导致程序崩溃,因此需要进行输入长度的检查。
相关问题
用C++编写函数void delDigit(char* p)删除一个字符串中的所有数字字符。在主函数中,从键盘输入一个字符串(有可能带空格),然后调用delDigit函数删除该字符串中的数字字符,将从键盘输入的字符串以及处理后的字符串写入文件result.txt。文件的第一行为原字符串,第二行为处理后的字符串。(假定从键盘输入的字符串不超过80个字符) 要求:不得使用字符串处理系统函数以及字符处理系统函数。
实现这个函数可以使用两个指针,一个指向原字符串,一个指向处理后的字符串。遍历原字符串,如果遇到数字字符,则跳过;否则将该字符复制到处理后的字符串中。最后,将处理后的字符串写入文件。
下面是实现代码:
```c++
#include <iostream>
#include <fstream>
using namespace std;
void delDigit(char* p) {
char* q = p;
while (*p != '\0') {
if (*p >= '0' && *p <= '9') {
p++;
} else {
*q = *p;
p++;
q++;
}
}
*q = '\0';
}
int main() {
char str[81];
cout << "请输入一个字符串:";
cin.getline(str, 81);
delDigit(str);
ofstream fout("result.txt");
fout << "原字符串:" << str << endl;
fout << "处理后的字符串:" << str << endl;
fout.close();
cout << "处理后的字符串已写入文件result.txt" << endl;
return 0;
}
```
注意,这个程序还需要头文件 `fstream` 来进行文件操作。
c++从键盘输入一个字符串,判断输入的字符串是否为回文,若是回文,输出:YES,否则输出:NO。
当然,我也可以用 C++ 代码帮您实现这个功能。以下是 C++ 代码实现:
```cpp
#include <iostream>
#include <string>
using namespace std;
int main() {
string s;
cout << "请输入一个字符串:";
getline(cin, s); // 从键盘输入一个字符串,包括空格和其他特殊字符
int n = s.size();
bool flag = true;
for (int i = 0; i < n / 2; i++) {
if (s[i] != s[n - i - 1]) { // 判断是否为回文
flag = false;
break;
}
}
if (flag) {
cout << "YES" << endl;
} else {
cout << "NO" << endl;
}
return 0;
}
```
这段代码首先从键盘输入一个字符串,包括空格和其他特殊字符,使用 `getline` 函数可以实现这个功能。然后遍历字符串的前一半字符,与后一半字符进行比较,判断是否为回文。如果是回文,则输出“YES”,否则输出“NO”。
阅读全文