[题目3:输入一行字符] 由键盘输入一行字符(总字符个数从1个至80个均有可能,以回车符表示结束)。(1)将其中每个数字字符所代表的数值累加起来,输出结果;(2)将其中的大写符变成小写(其它类型的字符不变),并输出变换后的结果。 [第一组自测数据] [键盘输入]Abc123 [正确输出]abc123,6 [第二组自测数据] [键盘输入]A6H7T+65 [正确输出]24,a6h7t +65 [提示](1)可以使用下面程序段逐个读入键盘输入的一行字符 char ch; while((ch=getchar())l=′n′) {… } (2)数字字符转为对应的数值可用( ch=ch−′0′ (2)大写字母转为小写字母可用ch=ch+32 [具体操作步骤] (1)写出完整程序代码; (2)在计算机或手机上运行通过;
时间: 2023-04-03 18:03:45 浏览: 141
我可以回答这个问题。以下是完整的程序代码:
#include <stdio.h>
int main() {
char ch;
int sum = 0;
while ((ch = getchar()) != '\n') {
if (ch >= '0' && ch <= '9') {
sum += ch - '0';
}
if (ch >= 'A' && ch <= 'Z') {
ch += 32;
}
putchar(ch);
}
printf(",%d", sum);
return 0;
}
在计算机或手机上运行通过后,可以输入任意长度的字符,程序会将其中的数字字符所代表的数值累加起来,并将其中的大写字母转换为小写字母,最后输出变换后的结果和数字字符的累加和。例如,输入Abc123,输出abc123,6;输入A6H7T 65,输出a6h7t 65,24。
相关问题
英文电影中参演人员名单一般以某种方式进行排版显示。给定一个未排版的文件listin.txt,该文件中每行参演人员名单由冒号':'分隔成前后两部分,但格式杂乱无章,单词之间可能有多个空格或水平制表符分隔。编写程序,要求将其按如下排版规则排版输出到另一个文件listout.txt中: 1、从键盘输入一个整数,作为排版后所有各行冒号':'在一行中的固定位置;假设输入的整数肯定大于排版后所有各行冒号':'前的字符个数,位置从1开始计数; 2、冒号':'左边的单词串左对齐,左边的最后一个单词与冒号之间以空格填充;冒号':'右边的单词串以冒号':'为基准左对齐,最后一个单词后只有回车换行符,不再有其它字符; 3、冒号':'左右两边的单词之间都只有一个空格分隔,并且要求冒号与右边的首个单词之间有一个空格。 假设输入文件中每行字符个数不超过100。 输入格式: 先从键盘输入一个整数,表示冒号':'所在的位置。待排版的名单从当前目录下的listin.txt文件中读入。 输出格式: 排版后的名单输出到当前目录下的listout.txt中。如下图: 输入样例: 40 输出样例: 排版后的名单输出至文件listout.txt 无 Python代码
由于题目中需要从文件中读取输入和输出,这里提供 Python 的完整实现代码:
```python
# 读取输入整数
pos = int(input())
# 打开输入文件和输出文件
with open('listin.txt', 'r') as fin, open('listout.txt', 'w') as fout:
# 逐行读取输入文件,并进行排版
for line in fin:
# 去除行尾的换行符
line = line.rstrip('\n')
# 查找冒号的位置
colon_pos = line.find(':')
# 如果冒号不存在,则直接输出原行
if colon_pos == -1:
fout.write(line + '\n')
else:
# 计算左边单词串和右边单词串的长度
left_len = colon_pos
right_len = len(line) - colon_pos - 1
# 计算右边单词串前面需要填充的空格数
right_space = pos - colon_pos - 1
# 左对齐输出左边单词串
fout.write(line[:colon_pos].ljust(pos - 1) + ' ')
# 输出右边单词串,并在前面填充空格
fout.write(line[colon_pos + 1:].rjust(right_space + right_len) + '\n')
```
该程序首先从键盘读取整数 pos,表示冒号所在的位置。接着打开输入文件 listin.txt 和输出文件 listout.txt,在输入文件中逐行读取每个参演人员名单,进行排版后写入输出文件中。
排版的具体实现方式为:
1. 查找冒号的位置,如果不存在则直接输出原行;
2. 计算左边单词串和右边单词串的长度,以及右边单词串前面需要填充的空格数;
3. 左对齐输出左边单词串,并在最后一个单词后面填充一个空格;
4. 输出右边单词串,并在前面填充空格,最后换行输出。
需要注意的是,由于输入文件中每行字符个数不超过 100,因此程序不需要考虑一行输出超过 100 个字符的情况。
用c++ 你的儿子小明打字水平有限,当他希望打出某个单词如 smart 时,他会错误地按到键盘上其他字母键盘,例如形成 asnmaaaert 这样的尴尬情况。更加令人崩溃的是,小明还不会用"退回"键或者删除功能来清理错误字母,现在请你识别出真正单词每个字母在错误单词中的位置。 先输入一行字符串,代表小明的打字内容。第二行字符串代表小明真实希望打的单词。小明会确保正确单词所有字母都会依次出现在他打的内容里。 输入输出格式 输入格式 输入文件typist1.in 有两行字符串a和b,都由小写字母组成。长度均不超过1000。 输出格式 输出文件typist1.out 一行整数,由空格隔开,依次代表b单词每一个字母在a字符串里是第几个。如果有多种可能,输出位置最小的一组。 输入输出样例 输入样例#1: loops oops 输出样例#1: 2 3 4 5 输入样例#2: cuonmutputerr computer 输出样例#2: 1 3 5 8 9 10 11 12 输入样例#3: 无 输出样例#3: 无
这个问题可以通过遍历输入的字符串进行解决。我们可以使用两个指针,一个指向输入字符串的当前位置,另一个指向目标单词的当前位置。在遍历过程中,如果两个字符匹配,则将目标单词的当前位置输出,并将两个指针都向后移动一位。如果不匹配,则只将输入字符串的指针向后移动一位。以下是用C++实现的代码:
```cpp
#include <iostream>
#include <string>
using namespace std;
int main() {
string input, target;
cin >> input >> target;
int inputPtr = 0, targetPtr = 0;
bool found = false;
while (inputPtr < input.length() && targetPtr < target.length()) {
if (input[inputPtr] == target[targetPtr]) {
cout << inputPtr + 1 << " ";
inputPtr++;
targetPtr++;
found = true;
} else {
inputPtr++;
}
}
if (!found) {
cout << "无";
}
return 0;
}
```
这段代码首先读取输入的两个字符串,然后使用两个指针分别指向字符串的起始位置。然后,使用一个循环来遍历输入字符串。在每次循环中,检查当前字符是否与目标单词的当前字符匹配。如果匹配,则输出当前位置(加1,因为题目要求位置从1开始),然后将两个指针都向后移动一位。如果不匹配,则只将输入字符串的指针向后移动一位。循环结束后,如果没有找到匹配的字符,输出"无"。
希望能帮到你!如果有任何疑问,请随时提问。
阅读全文
相关推荐
![application/x-rar](https://img-home.csdnimg.cn/images/20210720083606.png)
![txt](https://img-home.csdnimg.cn/images/20241231045021.png)
![-](https://img-home.csdnimg.cn/images/20241231044955.png)
![-](https://img-home.csdnimg.cn/images/20241231044937.png)
![-](https://img-home.csdnimg.cn/images/20241231044937.png)
![-](https://img-home.csdnimg.cn/images/20241231044937.png)
![-](https://img-home.csdnimg.cn/images/20241231044937.png)
![-](https://img-home.csdnimg.cn/images/20241231044937.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)