您的位置:首页 > 其它

2、有一段文本,将文本中的所有单词,存放到一个字符指针数组中(要求每个单词内存恰好)。

2014-07-30 09:35 399 查看
//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;
//    }
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: 
相关文章推荐