我必須拆分一個字符串輸入值,其中有一個空格並輸出結果。在數組中拆分字符串值
例如:輸入:
I am a noob at C
輸出:
>>I
>>am
>>a
>>noob
>>at
>>C
代碼:
void splitText(){
char str[100];
char sep[] = " \r\n";
char *res; //if i remove this
fgets(str,sizeof str,stdin);
if (fgets(str, sizeof str, stdin) == NULL) {
printf("error");
}
char *p = strchr(str, '\n');
if (p) *p = 0;
res = strtok(str, sep); //and this
printf("%s\n",res); //and change this to str
}
工作碼的人遇到了同樣的問題:
#include <stdio.h>
#include <string.h>
#include <stdlib.h>
void splitText() {
char str[100];
char sep[] = " \n";
char *res;
fgets(str,sizeof str, stdin);
if (fgets(str, sizeof str, stdin) == NULL) {
printf("Error");
break;
}
res = strtok(str, sep);
while(res != NULL){
printf("Splitted String: \"%s\"\n",res);
res = strtok(NULL,sep);
}
}
感謝大家幫助我解決這個問題!
'焦炭海峽[100] =的scanf( 「%s」 時,STR);',你在哪裏讀的? – Haris
'scanf()'返回一個整數,並且將它分配給一個char數組 'scanf(「%s」,str)'將完成您的工作,只需刪除左側部分 –
無論何時您對特定函數去閱讀它。學習函數返回什麼或在這種情況下它如何存儲值可能會節省您很多時間和麻煩 – Talaria