有一段文本,将文本中的所有单词,存放到一个字符指针数组中(要求每个单词内存恰好)
2014-07-30 09:33
344 查看
//1.bug1 : 如果最后一个单词后面直接跟\0.无法获取. //2.bug2 : 第一个单词前面出现空格,或者多个空格 //3.bug3 : 单词与单词之间出现多个空格. //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; } </span>
相关文章推荐
- // 2、有一段文本,将文本中的所有单词,存放到一个字符指针数组中(要求每个单词内存恰好)。
- 有一段文本,将文本中的所有单词,存放到一个字符指针数组中(要求每个单词内存恰好)
- 有一段文本,将文本中的所有单词,存放到一个字符指针数组中(要求每个单词内存恰好)。
- 有一段文本,将文本中的所有单词,存放到一个字符指针数组中(要求每个单词内存恰好)
- 有一段文本,将文本中的所有单词,存放到一个字符指针数组中(要求每个单词内存恰好)。
- (指针版,无bug版)有一段文本,将文本中的所有单词,存放到一个字符指针数组中(要求每个单词内存恰好)
- 2、有一段文本,将文本中的所有单词,存放到一个字符指针数组中(要求每个单词内存恰好)。
- 2、有一段文本,将文本中的所有单词,存放到一个字符指针数组中(要求每个单词内存恰好)。
- (无bug版)有一段文本,将文本中的所有单词,存放到一个字符指针数组中(要求每个单词内存恰好)。
- (详版, 无bug版)有一段文本,将文本中的所有单词,存放到一个字符指针数组中(要求每个单词内存恰好)
- 有一段文本,将文本中的所有单词,存放到一个字符指针数组中(要求每个单词内存恰好)
- 3、有一段文本,将文本中的所有单词,存放到一个字符指针数组中(要求每个单词内存恰好)
- 有一段文本,将文本中的所有单词,存放到一个字符指针数组中(要求每个单词内存恰好)
- 有一段文本,将文本中的所有单词,存放到一个字符指针数组中(要求每个单词内存恰好)。
- 有一段文本,将文本中的所有单词,存放到一个字符指针数组中(要求每个单词内存恰好)。
- 有一段文本,将文本中的所有单词,存放到一个字符指针数组中(要求每个单词内存恰好)
- 有一段文本,将文本中的所有单词,存放到一个字符指针数组中(要求每个单词内存恰好)
- 有一段文本,将文本中的所有单词,存放到一个字符指针数组中(要求每个单词内存恰好)。
- 有一段文本,将文本中的所有单词,存放到一个字符串数组中。(要求占用内存最少)
- 在控制台输入一段文本,将文本中的所有单词,存放到一个字符串数组中。 ( 要求占用内存最少)