本题目要求编写程序,输入一行字符,将每个单词的首字母改为大写后输出。所谓“单词”是指连续不含空格的字符串,各单词之间用空格分隔,空格数可以是多个。\n\n输入格式:\n输入给出一行字符。\n\n输出格式:\n在一
时间: 2023-04-15 14:05:06 浏览: 88
行中输出修改后的字符串。\n\n输入样例:\nHello world! How are you?\n输出样例:\nHello World! How Are You?\n\n实现思路:\n1. 读入一行字符串\n2. 遍历字符串,找到每个单词的首字母,将其改为大写\n3. 输出修改后的字符串\n\n实现步骤:\n1. 读入一行字符串\n2. 定义一个变量记录当前单词的起始位置\n3. 遍历字符串,找到每个单词的首字母,将其改为大写\n4. 输出修改后的字符串
相关问题
本题目要求编写程序,输入一行字符,将每个单词的首字母改为大写后输出。所谓“单词”是指连续不含空格的字符串,各单词之间用空格分隔,空格数可以是多个。 输入格式: 输入给出一行字符。 输出格式: 在一行中输出已输入的字符,其中所有单词的首字母已改为大写。
输入样例:
hello world here i come
输出样例:
Hello World Here I Come
【样例说明】:原字符串中有3个单词,分别为"hello"、"world"和"here i come",将它们的首字母改为大写后,得到的新字符串为"Hello World Here I Come"
题目描述 文本文件 data.dic 存有若干行由英文单词组成的句子,相邻单词之间有一个空格分割,前三行的信息为:however business leaders have argued that immigration boosts the amarican economy and that ending the daca programme编写程序,输入起始行和终止行,将该范围内的每个单词的首字母改为大写并将结果输出到屏幕上,注意文件中只有小写的英文单词,无其他成分。只需提交需要填写部分的代码。请完善如下程序:#include <stdio.h> #include <stdlib.h> #include <string.h> /* 将每个单词的首字母大写,文件中只存在单词,而且均为小写 */ int main() { FILE *fp; char str[100]; int start, end, i, linecount= 0, slen; /* i为迭代变量,linecount记录当前处理行数是第几行,默认从0开始计数 */ if ((fp= fopen("data.dic", "r")) == NULL ) { printf("can't read data.dic!\n"); exit(-1); } scanf("%d %d", &start, &end); while (!feof(fp)) { fgets(str, 100, fp); linecount++; // 判断是否是 start 至 end 行,不是则继续读文件 if (linecount < start) continue; if (linecount > end) break; if (str[0] > 'z' || str[0] < 'a') break; slen= strlen(str); for (i= 0; i < slen; i++) //符合条件 { /*注意每一行开始的单词前没有空格*/ if (i == 0) str[i]= str[i] - 32; /*******在下面填写代码***********/ /*******在上面填写代码***********/ } printf("%s", str); //输出处理后的字符串 } fclose(fp); return 0; } 输入 输入两个数字 $start$,$end$ $(start \lt end)$。 输出 输出从 $start$ 行到 $end$ 行的修改后的信息。
```c
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
int main() {
FILE *fp;
char str[100];
int start, end, i, linecount = 0, slen;
if ((fp = fopen("data.dic", "r")) == NULL ) {
printf("can't read data.dic!\n");
exit(-1);
}
scanf("%d %d", &start, &end);
while (!feof(fp)) {
fgets(str, 100, fp);
linecount++;
if (linecount < start) {
continue;
}
if (linecount > end) {
break;
}
if (str[0] > 'z' || str[0] < 'a') {
break;
}
slen = strlen(str);
for (i = 0; i < slen; i++) {
if (i == 0) {
str[i] = str[i] - 32;
}
if (i > 0 && str[i - 1] == ' ') { // 如果前一个字符是空格,则当前字符需要转换为大写
str[i] = str[i] - 32;
}
}
printf("%s", str);
}
fclose(fp);
return 0;
}
```
注意需要将每个单词的首字母改为大写,需要判断前一个字符是否为空格。
阅读全文