c++编程题: 要求:程序能实现 键盘输入一段文章,统计单词个数,把其中的大写改为小写,字符串改为数字,其余不变
时间: 2023-02-06 08:56:28 浏览: 99
好的,我会用中文来回答这道 C 编程题。
首先,你需要使用 scanf 函数来从键盘输入文本。你可以用一个字符数组来存储输入的文本。
然后,你可以使用一个循环来遍历这个字符数组,在每个循环迭代中判断当前字符是否为字母。如果是,就统计单词个数。
接着,你可以使用 isupper 函数来判断当前字符是否为大写字母,如果是,就使用 tolower 函数把它转换成小写字母。
最后,你可以使用 atoi 函数来将字符串转换成数字。
这是一个基本的思路,你可以根据需要来调整细节。希望这对你有帮助。
相关问题
用指针编程实现一个字符统计程序要求输入最多200个字符的字符串输出字符总个数大写字母个数小写字母个数数字个数以及其他字符的个数使用c++编程
以下是一个用指针编写的字符统计程序的示例代码:
```c++
#include <iostream>
#include <ctype.h>
using namespace std;
int main()
{
char str[200];
int total = 0, upper = 0, lower = 0, digit = 0, other = 0;
char *p = str;
cout << "请输入一个字符串(最多200个字符):" << endl;
cin.getline(str, 200);
while (*p)
{
if (isupper(*p))
{
upper++;
}
else if (islower(*p))
{
lower++;
}
else if (isdigit(*p))
{
digit++;
}
else
{
other++;
}
total++;
p++;
}
cout << "字符串中共有" << total << "个字符,其中:" << endl;
cout << "大写字母:" << upper << endl;
cout << "小写字母:" << lower << endl;
cout << "数字:" << digit << endl;
cout << "其他字符:" << other << endl;
return 0;
}
```
该程序首先定义一个字符数组 `str` 来存储输入的字符串,然后定义五个变量来分别统计总字符数、大写字母数、小写字母数、数字个数和其他字符个数。接着定义一个指针 `p` 指向字符数组 `str` 的首地址,并使用 `while` 循环来遍历整个字符串。在遍历过程中,利用 `isupper`、`islower` 和 `isdigit` 函数来判断字符是否为大写字母、小写字母和数字,从而分别对计数器进行加一操作。最后输出统计结果即可。
C++实现动态规划最后写出来时由大写字母与小写字母组成。要把字符串前面开头部分改为大写,后面全部都为小写。你可以把一个大写字符改为小写字符,把一个小写字符改为大写字符。最少修改多少个字符的状态,你可以把字符串改为前面是大写字符,后面是小写字符的字符串。 前面的大写字符个数可以为0,后面的小写字符个数也0
以下是C++代码实现:
```c++
#include <iostream>
#include <string>
#include <vector>
using namespace std;
int modify_string(string s) {
int n = s.length();
vector<vector<int>> dp(n + 1, vector<int>(n + 1, INT_MAX));
dp[0][0] = 0;
for (int i = 1; i <= n; i++) {
for (int j = 0; j <= i; j++) {
if (j > 0 && i > j) {
dp[i][j] = dp[i - 1][j - 1] + (s[i - 1] >= 'a' && s[i - 1] <= 'z');
}
if (i > j) {
dp[i][j] = min(dp[i][j], dp[i - 1][j] + (s[i - 1] >= 'A' && s[i - 1] <= 'Z'));
}
}
}
int ans = INT_MAX;
for (int j = 0; j <= n; j++) {
ans = min(ans, dp[n][j]);
}
return ans;
}
int main() {
string s = "AbCdE";
cout << modify_string(s) << endl; // 输出 3,将第 1 个字符、第 3 个字符和第 5 个字符改为小写字母即可
return 0;
}
```
时间复杂度为 $O(n^2)$。
阅读全文