C++之文字列输入输出

  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
好的,我将分别回答这四个问题,首先是第一个问题: 1. 输入3行4的矩阵,按行形式输出该矩阵。求周边元素之和,并输出。 ```c++ #include <iostream> using namespace std; const int ROWS = 3; const int COLS = 4; int main() { int matrix[ROWS][COLS]; int sum = 0; // 输入矩阵 for (int i = 0; i < ROWS; i++) { for (int j = 0; j < COLS; j++) { cin >> matrix[i][j]; } } // 输出矩阵 cout << "矩阵为:" << endl; for (int i = 0; i < ROWS; i++) { for (int j = 0; j < COLS; j++) { cout << matrix[i][j] << " "; } cout << endl; } // 计算周边元素之和 for (int i = 0; i < ROWS; i++) { for (int j = 0; j < COLS; j++) { if (i == 0 || i == ROWS - 1 || j == 0 || j == COLS - 1) { sum += matrix[i][j]; } } } cout << "周边元素之和为:" << sum << endl; return 0; } ``` 2. 输入一行字符,统计其中有多少个单词,单词之间用分隔符(空格或,;!.)分开。 ```c++ #include <iostream> #include <cstring> using namespace std; int main() { string str; getline(cin, str); // 输入一行字符 int cnt = 0; char delimiters[] = " ,;!.:"; // 分隔符 char* token = strtok(&str[0], delimiters); while (token != NULL) { cnt++; token = strtok(NULL, delimiters); } cout << "单词数为:" << cnt << endl; return 0; } ``` 3. 用选择法对10个整数排序,10个整数用scanf函数输入,排序后10个数按由小到大的顺序输出。 ```c++ #include <iostream> using namespace std; const int N = 10; int main() { int arr[N]; for (int i = 0; i < N; i++) { scanf("%d", &arr[i]); } for (int i = 0; i < N - 1; i++) { int minIdx = i; for (int j = i + 1; j < N; j++) { if (arr[j] < arr[minIdx]) { minIdx = j; } } int tmp = arr[i]; arr[i] = arr[minIdx]; arr[minIdx] = tmp; } cout << "排序后的数组为:" << endl; for (int i = 0; i < N; i++) { cout << arr[i] << " "; } cout << endl; return 0; } ``` 4. 有一篇文章,共有3行文字,每行有80个字符。要求分别统计出其中英文大写字母、小写字母、数字、空格以及其它字符的个数。 ```c++ #include <iostream> #include <cstring> using namespace std; int main() { string text[3]; int upperCnt = 0, lowerCnt = 0, digitCnt = 0, spaceCnt = 0, otherCnt = 0; // 输入文章 for (int i = 0; i < 3; i++) { getline(cin, text[i]); } // 统计各类字符出现的个数 for (int i = 0; i < 3; i++) { for (int j = 0; j < 80; j++) { char c = text[i][j]; if (c >= 'A' && c <= 'Z') { upperCnt++; } else if (c >= 'a' && c <= 'z') { lowerCnt++; } else if (c >= '0' && c <= '9') { digitCnt++; } else if (c == ' ') { spaceCnt++; } else { otherCnt++; } } } cout << "大写字母个数:" << upperCnt << endl; cout << "小写字母个数:" << lowerCnt << endl; cout << "数字个数:" << digitCnt << endl; cout << "空格个数:" << spaceCnt << endl; cout << "其它字符个数:" << otherCnt << endl; return 0; } ```

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值