【CPP】字符串和格式化輸入輸出


前導:數組(array),字符串轉換說明符%s,定義符號常量,,strlen()獲取字符串長度,。

【字符串】

沒有專門的字符串類型,是吧他存儲在字符型數組中,數組最后一個字符為空字符'\0',c用他來標志字符串的結束,這個非打印字符不會被打印出來,但這意味着數組單元的長度必須比字符串的長度至少大一。

【使用字符串】

#include<stdio.h>
int main(void) { char name[40];//定義字符數組
    printf("what's your name?\n"); scanf("%s",name);//注意:輸入字符串時沒有用到&符號
    printf("Hello %s !",name); return 0; }

 

 

注意:scanf()讀取時會在遇到的第一個空格,制表符,換行符處停止。

【字符和字符串】

字符'x'是基本類型(char),存儲為[x]

字符串"x"是派生類型(char數組),存儲為[x][\0]

【strlen()函數】

sizeof運算符,以字節為單位給出數據大小,

strlen()函數,以字符為單位給出字符串長度,

一個字符占一個字節,但這他們得出的結果並不一樣。

 #include<stdio.h> #include<string.h>//提供strlen()函數的原型 ,他包含了許多與字符串相關的函數的原型 
#define PRAISE "what a marvelous name!"
int main(void) { char name[40]; printf("what's your name?\n"); scanf("%s",name); printf("Hello %s !",name); printf("your name of %d letters occupies %d memory cells.\n",strlen(name),sizeof name ); printf("the phrase of praise has %d letters.\n",strlen(PRAISE)); printf("and occupies %d memory cells.\n",sizeof PRAISE ); return 0; }

 

從這個例子可以看到,sizeof得到的是數據占用的大小,即使、申請的字符數組沒有填滿,也算作他的大小,自然地字符串末尾的非打印字符'\0'也算作占用的大小。

而strlen()就是計算字符串的長度而已,當然也就不包括'\0'。

注:size可以帶()也可以不帶,當需要獲取某個類型大小時圓括號是必須的,但某個具體量(如6.28,"Hello")時則可有可無。

【常量和C預處理器】

#define PI 3.14159//定義一個符號常量 
#define BEEP '\a'
#define OOPS "now you have done it !"
#define COST 3

 

 

這是在C預處理器完成的,注意要大寫常量。

const修飾符:const關鍵字可以吧一個變量聲明轉換成常量聲明,使其成為只讀值,

這種方式更為靈活。

const int SCORE = 89;//SCORE是一個值為89的符號常量

 

系統定義的常量:頭文件limits.h和float.h分別提供整型和浮點型

//例如limits.h文件包含下面類似的行
#define INT_MAX +32767
#define INT_MIN -32768

 

【研究和利用printf()和scanf()】

 

 僅允許非商業轉載,轉載請注明出處:

https://i.cnblogs.com/EditPosts.aspx?postid=7082749


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM