1161: 字串長度(指標專題)
題目描述
編寫一函式len,求乙個字串的長度,注意該長度不計空格。要求用字元指標實現。在主函式中輸入字串,呼叫該len函式後輸出其長度。
int len(char *sp)
輸入
輸入乙個字串,以回車結束,長度不超過100。
輸出
輸出乙個整數,單獨佔一行。
樣例輸入
what day is today?
樣例輸出
15**展示
#include
#include
intlen
(char
*sp)
;//計算字串長度並返回乙個整數
intmain()
intlen
(char
*sp)
return a;
}
說明
函式內的迴圈也可以寫成下列形式:
while
(*sp!=
'\0'
)
注意
在輸入字串的時候如果使用scanf函式輸入,那麼結果將是錯誤的,因為scanf的讀取原理是匹配字元,當scanf從緩衝區讀取資料時遇到空格和回車鍵則認為讀取完畢,即要是輸入"a b"則讀取的只有a,
解決方法
使用gets(buf),但編譯時系統可能會報警告,說它不安全因為gets()不能指定資料的長度,故可使用fgets()
使用fgets(buf,20,stdin), gets()函式在讀入字串時,在讀到換行符時會將換行符轉換成空字元,也就是轉換成字串結束標誌儲存,但fgets()不會替換換行符,它會將換行符也作為字串的一部分讀到字串中來
使用scanf("%[^\n]",buf), [^\n]的意思是scanf遇到\n才停止讀取,需注意使用此種方式後,buf中存放的字串末尾無』\n』。
ZZULIOJ 1164 字串加密
輸入一串字元 長度不超過100 和乙個正整數k,將其中的英文本母加密並輸出加密後的字串,非英文本母不變。加密思想 將每個字母c加乙個序數k,即用它後面的第k個字母代替,變換公式 c c k。如果字母為z,則後乙個字母是a,也就是字母字元形成乙個圓。輸入第一行是若干字元,以回車結束。輸入第二行是乙個整...
zzuli oj 1134 字串轉換
輸入乙個以回車結束的字串,它由數字和字母組成,請過濾掉所有非數字字元,然後將數字字串轉換成十進位制整數後乘以2輸出。輸入乙個以回車結束的字串,長度不超過100,由數字和字母組成。將轉換後的整數乘以2輸出,測試資料保證結果在int範圍內。sg987aa65t498 197530996 ac 1 inc...
zzulioj 1155 字串比較 多例項
比較字串大小,但比較的規則不同字典序規則。字元比較新規則如下 a a b b z z。輸入資料報含多個測試例項,每個測試例項佔兩行,每一行有乙個字串 只包含大小寫字母,長度小於10000 如果第乙個字串小於第二個,輸出yes,否則,輸出no。注意 a a b b z z。abc bbcab aabc...