C语言中数据结构实现字符串分割可以用到两种常见数据结构:指针和数组。
方法一:指针
步骤一:创建指针
首先声明一个指针类型的变量,用来存储字符串中单个字符所在的地址:
char *ptr;
步骤二:遍历字符串
通过对字符串进行遍历,在每个分隔符位置上获取单词,并通过指针记录下每个单词的地址:
char str[] = "C语言-数据结构-字符串分割";
char *ptr, *start = str;
while (*start) {
ptr = start;
while (*ptr != '-' && *ptr)
ptr++;
printf("%.*s\n", ptr - start, start);
start = (*ptr) ? ptr + 1 : ptr;
}
这里我们使用了两个指针:*ptr
和*start
,*ptr
用于获取单词所在位置,*start
指向字符串开始位置。
此时输出的结果为:
C语言
数据结构
字符串分割
方法二:数组
步骤一:定义一个字符串数组
首先声明一个字符串数组:
char str[30] = "C语言-数据结构-字符串分割";
char result[3][10];
int i, j, k = 0;
其中,str
用来存储原始字符串,result
用来存储分割后单词。这里我们假设字符串中只有三个单词,并且每个单词最长长度为10。
步骤二:遍历字符串
通过遍历字符串,获取分隔符('-'
)位置,并将分隔符前的内容存入result
数组中:
for (i = 0; i < strlen(str); i++) {
if (str[i] != '-') {
result[k][j] = str[i];
j++;
} else {
result[k][j] = '\0';
k++;
j = 0;
}
}
result[k][j] = '\0';
在这里,我们用i
遍历字符串中的每一位,用j
记录每个单词的长度,用k
表示单词在result
数组中的行数。
步骤三:输出结果
最后,我们输出result
数组中的每个元素,即为分割后的单词:
for (i = 0; i < 3; i++) {
printf("%s\n", result[i]);
}
此时输出的结果为:
C语言
数据结构
字符串分割
以上就是使用指针和数组两种数据结构实现C语言字符串分割的攻略。可以根据实际需求选择不同方法实现。
本站文章如无特殊说明,均为本站原创,如若转载,请注明出处:C语言数据结构实现字符串分割的实例 - Python技术站