給定乙個字串,統計字串中的空格數,和單詞數。
先定義兩個巨集,來判斷是字母還是空格。
#define isalaph(p) ((( p ) >= 'a' && (p) <= 'z') || (( p ) >= 'a' && (p) <= 'z'))
#define isspace(p) ((p) == ' ')
統計所有空格,單詞
如果當前字元是字母,先判斷它前面是不是字母,如果前面不是字母,那單詞數加1,否則無操作。
如果當前字元為空格,空格加1.
if( isalaph(*p) )
else if(isspace(*p))
else
將重複的空格合併的統計方法
統計單詞方法不變,增加乙個變數來表示前面乙個字元是否空格即可。
如果前面字元為空格,則不操作,否則,空格加1.
如上面**去掉注釋。
完整源**
#include #include #define isalaph(p) ((( p ) >= 'a' && (p) <= 'z') || (( p ) >= 'a' && (p) <= 'z'))
#define isspace(p) ((p) == ' ')
int main()
else if(isspace(*p))
else
p++;
}printf("spacecnt: %d, wordcnt: %d", spacecnt,wordcnt);
return 0;
}
面試題 字串翻轉
使用 c c 編寫函式,實現字串反轉,要求不使用任何系統函式,且時間複雜度最小,函式原型 char reverse str char str 使用c c 編寫函式,實現字串反轉,要求不使用任何系統函式,且時間複雜度最小,函式原型 char reverse str char str include i...
字串面試題 字串逆序
字串逆序可以說是最經常考的題目。這是一道入門級的題目。給定乙個字串s,將s中的字元順序顛倒過來,比如s abcd 逆序後變成s dcba 基本上沒有這麼考的,放在這裡主要是為了和後面的原地逆序做個對比。很簡單,直接分配乙個與原字串等長的字元陣列,然後反向拷貝一下即可。char reverse cha...
面試題 字串轉位元組
這是遇到的面試題,請問i j 為什麼?string str1 abcd測試一下 var strtobytes1 system.text.encoding.utf8.getbytes str1 var i strtobytes1.length var j str1.length 答 i 16 j 8 ...