用C语言, 输出字符串"v1.12.123"中的所有数字并转换为整形
时间: 2023-05-19 16:06:22 浏览: 92
可以使用C语言中的字符串处理函数和类型转换函数来实现这个功能。以下是一个示例代码:
```c
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#include <ctype.h>
int main() {
char str[] = "v1.12.123";
int num = 0;
int len = strlen(str);
for (int i = 0; i < len; i++) {
if (isdigit(str[i])) {
num = num * 10 + (str[i] - '0');
} else {
if (num > 0) {
printf("%d\n", num);
num = 0;
}
}
}
if (num > 0) {
printf("%d\n", num);
}
return 0;
}
```
这个程序会遍历字符串中的每个字符,如果是数字就累加到一个整数变量中,如果遇到非数字字符就输出累加的数字并清零。最后如果整数变量不为零,也要输出。运行结果如下:
```
1
12
123
```
相关问题
用C语言,将带数字与符号的字符串,如"v1.12,123"中,所有的数字分别输出为整形
可以使用C语言中的isdigit()函数来判断字符串中的字符是否为数字,然后使用atoi()函数将数字字符转换为整型。以下是示例代码:
```c
#include <stdio.h>
#include <ctype.h>
int main() {
char str[] = "v1.12,123";
int num = 0;
for (int i = 0; str[i] != '\0'; i++) {
if (isdigit(str[i])) {
num = num * 10 + (str[i] - '0');
} else {
if (num != 0) {
printf("%d\n", num);
num = 0;
}
}
}
if (num != 0) {
printf("%d\n", num);
}
return 0;
}
```
输出结果为:
```
1
12
123
```
用C语言提取一个字符串中的所有数字字符 (0'......9),将其转换为一个整数输出。
在C语言中,可以使用循环和ASCII码值来提取字符串中的数字字符并转换成整数。下面是一个简单的示例函数,它接受一个字符串作为输入,并返回字符串中的数字部分表示的整数值:
```c
#include <stdio.h>
#include <ctype.h> // 包含isdigit()函数
int extract_numbers(char str[]) {
int num = 0; // 初始化结果变量
for (int i = 0; str[i] != '\0'; i++) { // 遍历整个字符串
if (isdigit(str[i])) { // 检查字符是否为数字
num = num * 10 + (str[i] - '0'); // 将当前数字添加到结果
}
}
return num;
}
// 示例使用
int main() {
char input[] = "abc123def456";
int result = extract_numbers(input);
printf("提取的数字是: %d\n", result);
return 0;
}
```
在这个例子中,`isdigit()` 函数用于判断字符是否为数字,如果是,我们将它转换为十进制数值(通过减去 ASCII 码对应的 '0'),然后加到 `num` 上。最后,函数返回包含所有数字字符的整数。
阅读全文