c语言从字符串中找出数字
时间: 2024-05-09 21:18:50 浏览: 98
可以使用isdigit()函数来判断一个字符是否为数字,从而逐个字符遍历字符串,将数字字符提取出来组成数字。具体代码如下:
```c
#include <stdio.h>
#include <string.h>
#include <ctype.h>
int main()
{
char str[100];
int i, num = 0;
printf("请输入一个字符串:");
gets(str);
for (i = 0; i < strlen(str); i++) {
if (isdigit(str[i])) { // 判断字符是否为数字
num = num * 10 + str[i] - '0'; // 字符转数字
}
}
printf("字符串中的数字为:%d\n", num);
return 0;
}
```
需要注意的是,以上代码只能提取出一个数字,如果字符串中含有多个数字需要进行修改。
相关问题
c语言从字符串中找出数字并输出
以下是一个示例程序,它从字符串中找出数字,并将其输出到屏幕上:
```
#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语言编写函数找出字符串中的所有数字,要求区分正负数
以下是一个简单的 C 语言函数,可以找出字符串中的所有数字并区分正负数:
```c
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#include <ctype.h>
void find_numbers(char* str) {
char* p = str;
int num;
while (*p) {
if (isdigit(*p) || ((*p == '+' || *p == '-') && isdigit(*(p+1)))) {
num = strtol(p, &p, 10);
printf("%d\n", num);
} else {
p++;
}
}
}
int main() {
char str[] = "The quick brown -12 fox +34 jumps -56 over 78 the lazy dog.";
find_numbers(str);
return 0;
}
```
这个函数使用了 `isdigit` 函数来判断字符是否是数字,使用了 `strtol` 函数来将字符串转换为整数。在判断到正负数符号时需要检查后面一个字符是否为数字,以区分正负数。
阅读全文