c语言字符指针数组经典,此后不必再担心字符串问题.
2014-12-24 15:22
375 查看
原文: http://blog.csdn.net/u010774394/article/details/38280623
题目:将文本中的所有单词,存放到一个字符指针数组中(要求每个单词内存恰好
题目:将文本中的所有单词,存放到一个字符指针数组中(要求每个单词内存恰好
//1.如何存储文本? char str[] = " a41 a1421 b3511 b b c c c c dddddd jkthku"; //2.如何存储一个单词? char tempStr[20] = {0}; //存储文本中的一个单词 //3.如何存储堆区空间的地址? char *p[255] = {0}; //4.如何查找单词,并且将对应的单词存放到临时数组中? int i = 0; //标识str字符串中字符的下标 int j = 0; //标识tempStr字符串中字符的下标 int k = 0; //标识指针数组中元素的下标. while (1) { if (str[i] != ' ' && str[i] != '\0') { //当获取到的元素不为空格时,将它存储到临时数组tempStr中. tempStr[j++] = str[i]; } else if (j != 0) { //当遇到空格,或者遇到\0时.单词的存放结束 tempStr[j] = '\0'; //最后一个元素补上\0 //动态计算所需堆区空间的大小,将地址存放到对应的字符指针数组元素中 p[k] = malloc(strlen(tempStr) + 1); //将临时数组tempStr中字符串拷贝到对应堆区空间上. strcpy(p[k], tempStr); k++; j = 0; //存储下一单词时,又从数组的第一个字符开始. } //当读取到\0时,字符串读取完毕,跳出循环 if (str[i] == '\0') { break; } i++; //移动到str数组中的下一个元素 } for (int i = 0; i < k; i++) { printf("%s ", p[i]); free(p[i]); p[i] = NULL; }
相关文章推荐
- c语言字符指针数组经典,此后不必再担心字符串问题.
- 关于C语言字符数组、字符串和指针的相关问题
- C语言中字符数组和字符串指针分析
- C语言中字符数组和字符串指针分析
- c语言中,字符数组与字符串赋值问题
- C语言中字符数组和字符串定义和初始化的问题
- C语言中字符数组和字符串指针分析(转载)
- 关于c语言中的字符数组和字符串指针
- C语言中字符数组和字符串指针分析
- C语言字符串指针变量与字符数组的区别
- 关于字符串 字符数组 字符型指针的问题
- C语言中字符数组和字符串指针分析
- C语言中字符数组和字符串指针分析
- C语言字符串指针变量与字符数组的区别
- C语言中字符数组和字符串指针分析
- C语言中字符数组和字符串指针分析
- 11、C语言中字符数组和指针字符串的指针变量
- C语言中字符数组和字符串指针分析
- C语言中字符数组和字符串指针分析
- C语言中字符数组和字符串指针分析