C语言键盘输入一个不超过三十个字符的字符串,求其中'*'的个数并输出此串
时间: 2023-12-10 16:37:08 浏览: 25
下面是一个示例代码,可以实现你所需的功能:
```c
#include <stdio.h>
int main() {
char str[31]; // 定义一个长度为 31 的字符数组,用于存储输入的字符串
int count = 0; // 用于记录 '*' 的个数
printf("请输入一个不超过 30 个字符的字符串:");
scanf("%s", str); // 从键盘读入字符串,并存储到 str 数组中
// 遍历字符串中的每个字符,统计 '*' 的个数
for (int i = 0; str[i] != '\0'; i++) {
if (str[i] == '*') {
count++;
}
}
printf("输入的字符串为:%s\n", str);
printf("其中 '*' 的个数为:%d\n", count);
return 0;
}
```
注意,在使用 scanf 函数读入字符串时,我们需要使用 %s 格式控制符,并且不需要在字符串后面加上 & 符号,因为数组名本身就代表了数组首元素的地址。此外,我们还需要使用一个循环来遍历字符串中的每个字符,并使用 if 语句判断该字符是否为 '*'。
相关问题
C语言键盘输入一个不超过30个字符的,求其中“ab”子串的个数
好的,这是一个比较简单的问题。你可以按照以下步骤来解决:
1. 声明一个字符数组,用于存储用户输入的字符串。
2. 使用scanf函数从键盘输入字符串,并将其存储到数组中。
3. 遍历字符串,查找“ab”的出现次数。可以使用一个计数器变量来记录出现次数,每次找到一个“ab”子串,就将计数器加1。
4. 最后输出计数器的值,即“ab”子串的个数。
下面是一段示例代码:
```c
#include <stdio.h>
#include <string.h>
int main() {
char str[31]; // 声明一个字符数组,用于存储用户输入的字符串
int count = 0; // 计数器变量,用于记录“ab”子串的个数
printf("请输入一个不超过30个字符的字符串:");
scanf("%s", str); // 从键盘输入字符串,并将其存储到数组中
int len = strlen(str); // 获取字符串的长度
for (int i = 0; i < len - 1; i++) {
if (str[i] == 'a' && str[i+1] == 'b') { // 如果找到了“ab”子串
count++; // 计数器加1
}
}
printf("该字符串中包含%d个“ab”子串。\n", count); // 输出结果
return 0;
}
```
希望能解决你的疑惑,如果还有其他问题,可以继续提问哦!
用c语言编程实现输入一个字符串,输出其中非英文字符的个数
好的,我能够回答您的问题。以下是用C语言编程实现输入一个字符串,输出其中非英文字符的个数的代码:
```
#include <stdio.h>
#include <ctype.h>
#include <string.h>
int main() {
char str[100];
int non_english_chars = 0;
printf("请输入一个字符串:");
fgets(str, sizeof(str), stdin);
for (int i = 0; i < strlen(str); i++) {
if (!isalpha(str[i]) && str[i] != ' ') {
non_english_chars++;
}
}
printf("非英文字符的个数为:%d\n", non_english_chars);
return 0;
}
```
这个程序会提示用户输入一个字符串,并且使用fgets函数将输入读入变量str中。然后,程序使用循环遍历字符串中的每个字符,如果字符不是字母和空格,就将non_english_chars变量加1。最后,程序输出non_english_chars的值,就是非英文字符的个数。
希望这个回答能够帮到您,如有问题请随时与我交流。