CPrimerPlus的11章復習題10:編寫個函數,其參數為一個字符串指針,返回一個指針,返回的指針指向字符串中第一個空格的位置(如果沒有空格就返回空指針)
#include <stdio.h> char * FindSpace(char *); int main(void) { char str[] = "tom loves lily"; puts(str); puts(FindSpace(str)); } char * FindSpace(char * str) { while(*str != '\0' && *str != ' ')//判斷空格和空字符誰先出現就停止循環,這是思路,而不是把所有的str中的元素判斷完再停止循環 { str++; } if (*str == ' ') return str+1; else return NULL; }
顯示結果如下
然后改變下輸入的字符串為tomloveslily,結果就變成了:
我理解應該是puts()函數的輸入參數不可以是NULL空指針,就是參數不可以用空指針時出現這種結果。(當我注釋掉puts(FindSpace(str))就好了)