c语言提取字符串中的数字
时间: 2023-09-08 17:12:37 浏览: 173
找出字符串中的数字
你可以使用C语言的字符串处理函数来提取字符串中的数字。以下是一个示例代码,演示了如何使用`isdigit()`函数来判断字符是否为数字,并使用循环遍历字符串来提取数字。
```c
#include <stdio.h>
#include <ctype.h>
void extractNumbers(const char* str) {
int start = -1; // 记录数字的起始位置
for (int i = 0; str[i] != '\0'; i++) {
if (isdigit(str[i])) {
if (start == -1) { // 如果是数字的起始位置
start = i; // 记录起始位置
}
} else {
if (start != -1) { // 如果数字的起始位置已被记录
int end = i - 1; // 记录数字的结束位置
int length = end - start + 1; // 计算数字的长度
// 提取数字并输出
char number[length + 1];
strncpy(number, &str[start], length);
number[length] = '\0';
printf("%s\n", number);
start = -1; // 重置起始位置
}
}
}
if (start != -1) { // 处理字符串末尾的数字
int end = strlen(str) - 1; // 记录数字的结束位置
int length = end - start + 1; // 计算数字的长度
// 提取数字并输出
char number[length + 1];
strncpy(number, &str[start], length);
number[length] = '\0';
printf("%s\n", number);
}
}
int main() {
const char* str = "abc123def456ghi789";
extractNumbers(str);
return 0;
}
```
上述代码将输出字符串中的数字,输出结果为:
```
123
456
789
```
你可以将需要提取数字的字符串传递给`extractNumbers()`函数来提取其中的数字。
阅读全文