C primer 第六章循环 习题6.7
6.07 讓用戶輸入一個單詞,并倒序打印這個單詞
#include <stdio.h>
#include <string.h>
int main(void)
{
? ?char word[20];
? ?size_t size;
? ?int index;
? ?printf("Please enter a word:");
? ?scanf("%s",word);
? ?size=(strlen (word));
? ?index=size--;
? ?for(;index>=0;index--)
? ? ? printf("%c",word[index]);
? ?return 0;
}
?
注意:1)strlen()函數用于計算字符串長度,其返回值類型為size_t,實質是unsigned int,因此在本例中不可直接放入for循環比較>=0(可以比較>0),否則出現錯誤。解決方法為新定義int 變量 index,將strlen()的值賦給index;
2)本題中index作為字符串的下腳標,應從零開始計數,故index=strlen()-1;且一定要減到0才可跳出循環,故必須比較index>=0;
3)讀取字符串用%s作為轉換說明,且scanf在讀取字符串時無需加 &;
?
PS:strlen()函數轉換說明為%zd 或%u;
sizeof使用時可加括號可不加,當運算對象是類型時,例如sizeof(float),必須加上();對于特定量,寫成 sizeof name或sizeof(name)均可;
strlen()在使用時務必加上();
sizeof() 和 strlen()區別:sizeof計算給數組(此處為字符串)分配的存儲單元個數,strlen計算字符串中字符數(包括空格和標點符號);
轉載于:https://www.cnblogs.com/lee1994/p/6866624.html
《新程序員》:云原生和全面數字化實踐50位技術專家共同創作,文字、視頻、音頻交互閱讀總結
以上是生活随笔為你收集整理的C primer 第六章循环 习题6.7的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 20个必不可少的Python库
- 下一篇: pycharm Python解释器的配置