c语言不使用strtok将字符串0 0x50 2 1 00 00 00以中间的空格拆分并将拆分每个字符串赋值给其他指针
时间: 2024-10-25 17:18:24 浏览: 21
C语言切割多层字符串(strtok_r strtok使用方法)
5星 · 资源好评率100%
C语言中,如果你想手动按照中间的空格字符分割字符串并分别赋值给指向其他存储区的指针,可以使用循环结构配合ASCII码来实现。这里是一个简单的示例:
```c
#include <stdio.h>
#include <string.h>
int main() {
char str[] = "0 0x50 2 1 00 00 00";
char *tokens[5]; // 假设最多有5个元素
int i = 0;
tokens[i++] = strtok(str, " "); // 获取第一个单词,直到遇到空格
while (tokens[i - 1] != NULL) { // 只要上一次非NULL,则继续查找下一个
tokens[i++] = strtok(NULL, " "); // 使用NULL作为参数,从上次结束的位置继续找
}
// 现在tokens数组里保存了分割后的结果
for (int j = 0; j < i; ++j) {
printf("tokens[%d]: %s\n", j, tokens[j]);
}
return 0;
}
```
这个程序会把原始字符串`str`按照空格分隔,每个部分分别存入`tokens`数组。注意,这个例子假设了输入字符串不会有超过4个的部分(因为数组大小限制了5个元素),如果实际应用中不确定部分数量,可能需要动态分配内存。
阅读全文