C语言如何拆分字符串CPU0_C2D1,提取出三个数字
时间: 2024-04-12 19:29:13 浏览: 108
在C语言中,你可以使用字符串处理的函数和库来拆分字符串并提取出三个数字。下面是一个示例代码:
```c
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
int main() {
char string[] = "CPU0_C2D1";
char *token;
char *delimiters = "_";
int numbers[3];
int i = 0;
token = strtok(string, delimiters);
while (token != NULL && i < 3) {
// 检查字符串是否以"CPU"开头,如果是则将其转换为数字
if (strncmp(token, "CPU", 3) == 0) {
numbers[i] = atoi(token + 3);
}
// 检查字符串是否以"D"开头,如果是则将其转换为数字
else if (strncmp(token, "D", 1) == 0) {
numbers[i] = atoi(token + 1);
}
// 检查字符串是否以"C"开头,如果是则将其转换为数字
else if (strncmp(token, "C", 1) == 0) {
numbers[i] = atoi(token + 1);
}
token = strtok(NULL, delimiters);
i++;
}
for (int j = 0; j < 3; j++) {
printf("Number %d: %d\n", j+1, numbers[j]);
}
return 0;
}
```
在这个示例中,我们使用strtok()函数根据分隔符"_"拆分字符串。然后,我们使用strncmp()函数来检查每个拆分后的子字符串的开头字符,并根据开头字符的不同,将其后的部分转换为数字。最终,我们将提取出的三个数字存储在一个整数数组中,并通过循环打印出来。请注意,这个示例假设输入字符串中的每个数字都是整数类型。如果有其他要求,请相应地调整代码。
阅读全文