範例中 gets 宜用 fgets 取代,避免 Buffer Overflow。
將使用者輸入的 String 切割成單一 token 可用 strtok() 這個函式。定義如下:
char * strtok ( char * str, const char * delimiters );程式使用範例:
// delimiters 表示以該字元為區隔。
char buf[32], token[10][32] , *str;若輸入:「This is my Blog」,則得到結果:
int idx=0;
gets (buf); //gets 允許輸入的字串帶有空白 (重點)
str = strtok(buf," ");
strcpy (token[0], str);
while ( str != NULL )
{
str = strtok(NULL," "); //此處用 NULL (技巧)
if (str!=NULL)
{
idx++;
strcpy(token[idx], str);
}
}
token[0] = This
token[1] = is
token[2] = my
token[3] = Blog
沒有留言:
張貼留言