C语言如何从输入的字符串中提取数字
时间: 2023-10-08 17:09:40 浏览: 785
你可以使用 C语言 中的函数 `isdigit()` 来判断字符串中的每个字符是否是数字。具体步骤如下:
1. 定义一个字符数组来存储输入的字符串。
2. 使用 `scanf()` 函数从用户输入中读取字符串。
3. 遍历字符串中的每个字符,判断是否是数字。如果是数字,将其取出并存储到另一个数组中。
4. 最后输出存储数字的数组即可。
以下是代码示例:
```
#include <stdio.h>
#include <ctype.h>
int main() {
char str[50];
int num[50], i, j = 0;
printf("输入一个字符串:\n");
scanf("%s", str);
for (i = 0; str[i] != '\0'; i++) {
if (isdigit(str[i])) {
num[j++] = str[i] - '0';
}
}
printf("字符串中的数字为:\n");
for (i = 0; i < j; i++) {
printf("%d ", num[i]);
}
return 0;
}
```
相关问题
c语言提取字符串中的数字字符串
在C语言中,提取字符串中的数字字符串通常涉及到遍历字符串并判断每个字符是否为数字。可以使用标准库函数`isdigit()`来自`ctype.h`来检查字符是否是数字。以下是一个简单的示例:
```c
#include <stdio.h>
#include <string.h>
#include <ctype.h>
void extract_numbers(char *str, char *result) {
int i = 0;
result[0] = '\0'; // 初始化结果字符串为空
for (i = 0; str[i]; ++i) { // 遍历字符串直到遇到空字符
if (isdigit(str[i])) { // 如果当前字符是数字
result[i] = str[i]; // 将它添加到结果字符串
} else if (result[i] != '\0') { // 如果之前已经有数字,添加分隔符如空格
result[i] = ' ';
result[++i] = str[i];
}
}
result[i] = '\0'; // 结束字符串并防止溢出
}
int main() {
char input[] = "abc123def456";
char numbers[256];
extract_numbers(input, numbers);
printf("提取后的数字字符串: %s\n", numbers);
return 0;
}
```
这个例子中,`extract_numbers`函数会将输入字符串中的连续数字字符合并成一个字符串,并用空格分隔。注意,这只是一个基本的实现,实际应用可能需要处理更复杂的情况,比如负数、小数点等。
c语言输入一个字符串,提取其中数字
在C语言中,你可以使用`scanf`函数从用户输入的字符串中提取数字。这里有一个基本的例子,它会查找并存储连续的数字字符:
```c
#include <stdio.h>
#include <ctype.h>
#define MAX_DIGITS 100 // 定义最多能存储的数字长度
int main() {
char input[MAX_DIGITS];
int num = 0; // 初始化结果变量
char current_char;
printf("请输入一个包含数字的字符串: ");
fgets(input, MAX_DIGITS, stdin); // 读取一行字符串,包括空格
for (size_t i = 0; i < strlen(input); i++) {
current_char = input[i]; // 当前处理的字符
if (isdigit(current_char)) { // 如果是数字字符
num = num * 10 + (current_char - '0'); // 更新当前数值
} else if (current_char == '\n') { // 如果遇到换行符结束输入
break;
}
}
printf("提取到的数字是: %d\n", num);
return 0;
}
```
在这个程序中,我们使用了`isdigit`函数检查字符是否为数字,并将每个数字字符转换为其对应的整数值(通过减去ASCII码值'0')。如果遇到非数字字符(如空格或其他非数字字符),我们就停止提取。
阅读全文