我發現這個程序在線,聲稱以格式「firstName/lastName」分割字符串。我測試,它的工作原理:字符指針和字符串
char *splitString(char* ptrS, char c){
while(*ptrS != c){
if(*ptrS == '\0'){
return NULL;
}
ptrS++;
}
return ptrS;
}
int main(){
char word[100];
char* firstName;
char* lastName;
printf("Please insert a word : ");
fgets(word, sizeof(word), stdin);
word[strlen(word)-1] = '\0';
firstName = word;
lastName = splitString(word, '/');
if(lastName == NULL){
printf("Error:/not found in string\n");
exit(-1);
}
*lastName = '\0';
lastName++;
printf("First name %s, Last name %s\n",firstName, lastName);
return(0);
}
什麼,我不過這裏看到的,是創建只有一個字符數組,而firstName
和lastName
指針放在properly.Maybe那是因爲我有點困惑關於指針和數組之間的關係,但我有幾個關於這個程序的問題:
- 在程序執行後會生成多少個字符串-as char數組?
- 在這個程序中使用的字符指針是否與字符串相同?
- 爲什麼我可以使用那些在
printf
中用作字符串的char指針?我可以在每個C程序中使用字符指針作爲字符串?
作爲推論,指針和數組之間有什麼關係?它們可以互換使用嗎?
你知道C中字符串的定義嗎?最好不要一起提出這麼多問題,如果你有一點點谷歌問題,至少可以找到一些問題的答案。 – 2014-10-20 13:34:41