C语言输入字符串,提取每个单词的首字母
时间: 2023-09-05 21:11:22 浏览: 274
好的,以下是一个简单的 C 语言程序,用于输入一个字符串,然后提取每个单词的首字母:
```c
#include <stdio.h>
#include <string.h>
#include <ctype.h>
int main() {
char str[100];
printf("请输入一个字符串:");
fgets(str, sizeof(str), stdin); // 读取字符串
char *p = strtok(str, " "); // 分割字符串为单词
while (p != NULL) {
printf("%c", toupper(p[0])); // 输出单词的首字母
p = strtok(NULL, " "); // 继续分割字符串
}
return 0;
}
```
该程序使用了标准库函数 strtok 来将输入的字符串分割为单词,然后使用 toupper 函数将每个单词的首字母转换为大写字母,并输出到屏幕上。
需要注意的是,程序假定单词之间是使用空格符分隔的。如果输入的字符串中使用了其他的分隔符,需要修改 strtok 函数的第二个参数。另外,由于 strtok 函数会修改输入的字符串,因此需要将输入的字符串复制到一个临时的字符数组中,以避免原始输入的字符串被修改。
相关问题
C语言一行代码提取字符串每个单词首字母
在C语言中,可以使用`strtok()`函数配合指针来逐个提取字符串中的单词首字母。`strtok()`函数会在给定的字符串中分割出单词,并返回后续处理的第一个单词。下面是一个简单的示例:
```c
#include <stdio.h>
#include <string.h>
char *get_first_char(char *str) {
char *token = strtok(str, " "); // 分割符为空格
if (token) {
return token; // 返回第一个单词
} else {
return NULL;
}
}
int main() {
char str[] = "Hello World! This is a Test.";
while (get_first_char(str)) { // 当有单词时继续提取
printf("%c ", get_first_char(str)); // 输出首字母并换行
}
return 0;
}
```
在这个例子中,`strtok()`会返回字符串中的每个单词,直到整个字符串处理完为止。每次调用都会更新内部的标记,以便下一次从上一次结束的地方开始分割。
C语言请输入下列字符串,并提取每个单词的首字母
好的,以下是一个简单的 C 语言程序,用于输入指定的字符串,然后提取每个单词的首字母:
```c
#include <stdio.h>
#include <string.h>
#include <ctype.h>
int main() {
char str[] = "the quick brown fox jumps over the lazy dog";
char *p = strtok(str, " "); // 分割字符串为单词
while (p != NULL) {
printf("%c", toupper(p[0])); // 输出单词的首字母
p = strtok(NULL, " "); // 继续分割字符串
}
return 0;
}
```
该程序使用了标准库函数 strtok 来将输入的字符串分割为单词,然后使用 toupper 函数将每个单词的首字母转换为大写字母,并输出到屏幕上。
需要注意的是,程序假定单词之间是使用空格符分隔的。如果输入的字符串中使用了其他的分隔符,需要修改 strtok 函数的第二个参数。另外,由于 strtok 函数会修改输入的字符串,因此需要将输入的字符串复制到一个临时的字符数组中,以避免原始输入的字符串被修改。
阅读全文