2、有一段文本,將文本中的所有單詞,存放到一個字符指針數組中(要求每個單詞內存恰好)。

 //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;
//    }

發佈了29 篇原創文章 · 獲贊 6 · 訪問量 1萬+
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章