簡體   English   中英

如何從C中的給定行創建字符串數組?

[英]How to create an array of strings from a given line in C?

char a[100]="You are welcome";

現在如何將這一行中的單詞變成字符串數組?

char b[5][20];
strcpy(b[0],"you");
strcpy(b[1],"are");
strcpy(b[2],"welcome");

這樣,我們可以使字符串數組。

但是我想動態地進行任何輸入嗎?

請幫忙...

strtok是您的朋友:

char a[] = "You are welcome";
char b[5][20] = {{0}};
char *pch;

pch = strtok( a," \t" );
int i = 0;
while( NULL != pch && i < 5)
{
    strcpy(b[i++], pch);
    pch = strtok( NULL, " \t\n" );
}

for( i = 0; i < 5; i++ )
{
    if( strlen(b[i]) > 0 )
    {
        printf( "b[%d] = %s\n", i, b[i] );
    }
}

不要忘記#include <string.h>


正如David C. Rankin指出的那樣。 我們可以通過只檢查第一個字符而不是\\0來消除strlen 因此,這將是一個更好的解決方案(請注意, strtok處理的主while循環保持不變)。

i = 0; 
while (*b[i]) 
{ 
    printf( "b[%d] = %s\n", i, b[i] ); 
    i++; 
}

參考:strtok

您可以在while循環中使用“ scanf”代替“ printf”,並將值存儲在第二個數組中(在您的情況下為b)

 while (pch != NULL)   {
     printf ("%s\n",pch);
     pch = strtok (NULL, " ,.-");   }

暫無
暫無

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

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