4.编写int intparse(char a[]),功能是接受一个字符串,返回整数,例如"123"◇ 返回123◇如果学符串中包含非数学 ◇则返回前面连续数字部分◇例如 "12ab3"◇返回12。在主函数输入字符串调用测试该函数。
时间: 2024-12-20 13:28:29 浏览: 3
输入一个字符串,取出其中的整数(实现代码)
5星 · 资源好评率100%
在C语言中,你可以创建一个名为`intParse`的函数,使用循环逐个字符解析输入字符串,直到遇到非数字字符为止。这里是一个简单的实现:
```c
#include <stdio.h>
#include <ctype.h> // 包含用于判断字符类型的头文件
int intParse(char a[]) {
int num = 0; // 初始化数值为0
bool isNumber = true; // 标记当前字符是否为数字
for (int i = 0; a[i] != '\0'; i++) {
if (!isdigit(a[i])) { // 如果不是数字
isNumber = false;
break; // 停止解析并跳出循环
} else {
num = num * 10 + (a[i] - '0'); // 乘以10并加当前字符对应的数字值
}
}
// 如果整个字符串都是数字,则返回数值;否则返回到找到的第一个非数字字符前的部分
if (isNumber) {
return num;
} else {
return (i > 0 ? num : 0); // 如果开头没有数字,则返回0
}
}
int main() {
char str1[] = "123";
char str2[] = "12ab3";
printf("123 parsed: %d\n", intParse(str1));
printf("12ab3 parsed: %d\n", intParse(str2));
return 0;
}
```
这个`intParse`函数会在遇到非数字字符时停止解析,返回已解析出的整数。如果输入字符串全是数字,它会正常转换并返回;如果有非数字字符,它只会返回到第一个非数字字符之前的数字部分。
阅读全文