簡體   English   中英

有沒有辦法打印由C中的char指針數組指向的字符串?

[英]Is there a way to print strings pointed to by array of char pointers in C?

我正在嘗試編寫一個解析函數,該函數調用另一個函數getword(),該函數將給定的字符串分解為單詞。 調用getword()可將賦予getword的字符串前進到下一個由空格分隔的單詞。

void parse(char *s, char **p) {
    int i = 0;
    while(*s != -1 && *s != '&' && *s != '\n' && *s != ';' && *s != '\0') {
       p[i] = s;
       i++;
       getword(s);
    }

}

運行調用程序后,我想打印出數組p中的char指針指向的字符串。 這是可能嗎?

我試過了 :

printf("%s\n", (**p));

在調用程序中,但只打印出“(null)”。

編輯

輸入字符串“ Hello World”后,我嘗試使用以下循環:

for(i=0; i< MAXITEM; i++)
    printf("%s\n", p[i]);

但是程序返回:

(空值)
(空值)
(空值)...”

兩個空白的換行符,然后是98(空)。 “ Hello”和“ World”這兩個詞實際上是存儲在這兩個空白的換行符中,還是實際上沒有存儲在** p中?

#define getword(s)  while (*s && *s != ' ') ++s; while (*s == ' ') *s++ = '\0'

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM