用c语言,输入一串字符串,然后判断其是否为数字字符,当数字为负时,输出:非法!的代码
时间: 2023-11-15 20:16:13 浏览: 37
可以使用C语言中的isdigit函数来判断一个字符是否为数字字符。具体实现如下:
```c
#include <stdio.h>
#include <ctype.h>
int main() {
char str[100];
printf("请输入字符串:");
scanf("%s", str);
int i = 0;
if (str[0] == '-') {
i = 1;
}
while (str[i] != '\0') {
if (!isdigit(str[i])) {
printf("非法!\n");
return 0;
}
i++;
}
printf("合法!\n");
return 0;
}
```
在这个代码中,首先使用scanf函数读取输入的字符串,然后遍历字符串中的每一个字符,使用isdigit函数判断其是否为数字字符。如果遇到非数字字符,就输出“非法!”并结束程序。如果所有字符都是数字字符,则输出“合法!”。这里特别判断了第一个字符是否为负号,如果是负号,则从第二个字符开始判断是否为数字字符。
相关问题
用c语言,输入一串字符串,然后判断其是否为数字字符,是的输出是,不是则输出不是,若为负数字,则输出非法的代码
好的,您的问题是如何使用C语言编写一个判断输入字符串是否为数字字符的程序。以下是一个示例程序:
```c
#include <stdio.h>
#include <ctype.h>
int main() {
char str[100];
int i;
printf("请输入一个字符串:");
scanf("%s", str);
for (i = 0; str[i] != '\0'; i++) {
if (!isdigit(str[i])) {
printf("不是数字字符\n");
return 0;
}
}
if(str[0] == '-'){
printf("非法的代码\n");
return 0;
}
printf("是数字字符\n");
return 0;
}
```
程序首先要求用户输入一个字符串,然后使用 `isdigit` 函数检查字符串中每个字符是否为数字字符。如果发现任何一个字符不是数字字符,就输出“不是数字字符”并结束程序。如果输入的是负数字,则输出“非法的代码”。
希望这个程序可以解决您的问题!
用C语言写一段将字符串转浮点数的代码
以下是将字符串转浮点数的C语言代码:
```c
#include <stdio.h>
#include <stdlib.h>
float strToFloat(char* str) {
char* endptr;
float num = strtof(str, &endptr);
if (*endptr != '\0') {
printf("Invalid input!");
exit(1);
}
return num;
}
int main() {
char str[] = "3.14";
float num = strToFloat(str);
printf("The float value is %.2f", num);
return 0;
}
```
上述代码中,函数`strToFloat`接受一个字符串作为参数,并使用`strtof`函数将其转换为浮点数。如果字符串中包含非数字或非法字符,`endptr`指向该位置,此时函数会输出一个错误信息并退出程序。最后,在`main`函数中调用`strToFloat`将字符串"3.14"转换成浮点数并打印出来。