c语言从字符串中找出数字并输出
时间: 2024-05-01 20:17:09 浏览: 42
以下是一个示例程序,它从字符串中找出数字,并将其输出到屏幕上:
```
#include <stdio.h>
#include <string.h>
#include <ctype.h>
int main()
{
char str[100];
printf("Enter a string: ");
fgets(str, 100, stdin); // 从标准输入读取字符串
int i = 0;
while (str[i] != '\0') {
if (isdigit(str[i])) { // 如果当前字符是数字
int j = i;
while (isdigit(str[j])) { // 找出数字的末尾位置
j++;
}
printf("%.*s\n", j - i, str + i); // 输出数字
i = j; // 跳过已经输出的数字
} else {
i++;
}
}
return 0;
}
```
在上面的程序中,我们使用了 `isdigit()` 函数来判断当前字符是否是数字。如果是数字,我们就在字符串中找到数字的末尾位置,然后使用 `printf()` 函数将数字输出到屏幕上。最后,我们跳过已经输出的数字,继续查找下一个数字。
相关问题
用c语言输入一个数字n,并输入n个字符串,找出最长的字符串并输出该字符串
在C语言中,你可以使用`fgets`函数从用户那里获取输入的整数`n`,然后使用循环来读取并存储每个字符串。遍历过程中,可以同时维护一个最长字符串的指针。以下是实现这个功能的一个简单示例:
```c
#include <stdio.h>
#include <string.h>
#define MAX_LEN 100 // 字符串的最大长度
int main() {
int n;
char longest[MAX_LEN] = ""; // 初始化最长字符串为空
fgets(&n, sizeof(n), stdin); // 读取n
n = atoi(n); // 转换为整数
for (size_t i = 0; i < n; i++) {
char str[MAX_LEN];
fgets(str, sizeof(str), stdin); // 读取字符串
str[strcspn(str, "\n")] = '\0'; // 去除行尾的'\n'
if (strlen(str) > strlen(longest)) { // 比较当前字符串长度
strcpy(longest, str); // 更新最长字符串
}
}
printf("最长的字符串是:%s\n", longest);
return 0;
}
c语言输入一串字符,输出字符串中的数字[0-9]
在C语言中,要输入一串字符并找出其中的数字(0到9),可以使用`ctype.h`库里的函数配合循环结构。以下是一个简单的示例程序:
```c
#include <stdio.h>
#include <ctype.h> // 包含处理字符类型的函数
void find_digits(char str[]) {
int i = 0;
while (str[i]) { // 遍历整个字符串直到遇到空字符
if (isdigit(str[i])) { // 使用isdigit()检查字符是否为数字
printf("%d", str[i]); // 打印找到的数字
}
i++;
}
}
int main() {
char input[100];
printf("请输入一串字符: ");
fgets(input, sizeof(input), stdin); // 输入一行字符,fgets用于防止换行符
input[strcspn(input, "\n")] = '\0'; // 删除换行符
find_digits(input);
return 0;
}
```
在这个程序中,用户会被提示输入一串字符,然后`find_digits()`函数会遍历这个字符串,对于每个字符,如果它是数字,就打印出来。
阅读全文