我想要做的是採取一個大輸入(直到用戶按下輸入(\ n)),然後調用一個函數,把這個輸入的第一個字(讀直到'')。我的問題是,即使它看起來很簡單,它也有2個額外的外星人字符。這是我的代碼:如何殺死我的字符串中的外星人字符?
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#include <ctype.h>
void findChoise(char *input, char *choise);
int main()
{
char choise[12];
char input[300];
printf("give me the input: ");
gets(input);
printf("%s\n", input);
printf("%s%d\n", "length of input: ", strlen(input));//for checking
findChoise(input, choise);
printf("%s%d\n", "length of output: ", strlen(choise));//for checking
printf("%s\n", choise);
return 0;
}
void findChoise(char *input, char *choise)
{
int i=0;
while(input[i] != ' ')
{
choise[i] = input[i];
i++;
};
}
爲了簡潔起見,您**爲了安全和'strchr()'需要**使用'fgets()'。 (在適當的情況下,爲了const正確性,可以使用const char *和const char *)。 – 2013-05-01 00:14:09