用C判断字符串是否为数字
时间: 2023-10-18 13:14:46 浏览: 88
可以使用C语言中的库函数isdigit()来判断一个字符是否为数字。可以通过遍历字符串的每个字符,并逐一判断是否为数字来判断整个字符串是否为数字。下面是示例代码:
```c
#include <stdio.h>
#include <ctype.h>
int main() {
char str[100];
int i;
printf("Enter a string: ");
scanf("%s", str);
// Check if each character is a digit
for(i = 0; str[i] != '\0'; i++) {
if(!isdigit(str[i])) {
printf("%s is not a number.\n", str);
return 0;
}
}
printf("%s is a number.\n", str);
return 0;
}
```
在上面的代码中,我们首先使用scanf()函数读取用户输入的字符串。然后使用for循环遍历字符串中的每个字符,并使用isdigit()函数判断该字符是否为数字。如果遇到非数字字符,则输出该字符串不是数字,并返回0。如果整个字符串都是数字,则输出该字符串是数字。
相关问题
C语言判断字符串是否为数字
C言中可以使用isdigit()函数来判断一个字符是否为数字。这个函数需要引用ctype.h头文件且函数的语法是int isdigit(char c),其中参数c表示要检测的字符。如果函数返回非零值,则表示该字符是一个十进制数字字符;如果函数返回0,则表示该字符不是一个十进制数字字符。
下面是两个例子来演示如何判断一个字符串是否包含数字:
```c
#include <stdio.h>
#include <string.h>
#include <ctype.h>
int main() {
char str[50] = {0};
int i, len;
gets(str);
len = strlen(str);
for (i = 0; i < len; i++) {
if (isdigit(str[i])) {
printf("含有数字:%c\n", str[i]);
}
}
return 0;
}
```
```c
#include <stdio.h>
#include <string.h>
#include <ctype.h>
int main() {
char str[100] = "", s[100] = "", c = ' ';
int i = 0, j = 0;
gets(str);
c = getchar();
while (str[i] != '\0') {
if (isdigit(str[i])) {
s[j] = c;
j++;
} else {
s[j] = str[i];
j++;
}
i++;
}
puts(s);
return 0;
}
```
回答完问题后的
C语言怎样判断字符串是否为数字
在C语言中,可以使用库函数`isdigit()`和`atoi()`来判断字符串是否为数字。
1. `isdigit()`函数:该函数用于判断一个字符是否为数字字符,如果是则返回非零值,否则返回0。可以通过循环遍历字符串中的每个字符,判断是否都是数字字符来判断字符串是否为数字。
示例代码:
```
#include <ctype.h>
int is_number(char *str) {
int i;
for (i = 0; str[i] != '\0'; i++) {
if (!isdigit(str[i])) {
return 0;
}
}
return 1;
}
```
2. `atoi()`函数:该函数可以将字符串转换为整数,如果字符串不是数字,则返回0。可以通过判断转换后的整数是否为0来判断字符串是否为数字。
示例代码:
```
#include <stdlib.h>
int is_number(char *str) {
int num = atoi(str);
if (num == 0 && str[0] != '0') {
return 0;
}
return 1;
}
```