精品欧美无遮挡一区二区三区在线观看,中文字幕一区二区日韩欧美,久久久久国色αv免费观看,亚洲熟女乱综合一区二区三区

        ? 首頁 ? 百科知識 ?字符串和字符數(shù)組的區(qū)別

        字符串和字符數(shù)組的區(qū)別

        時間:2023-10-20 百科知識 版權(quán)反饋
        【摘要】:注意在本例程序的printf函數(shù)中,使用的格式字符串為"%s",表示輸出的是一個字符串。而在輸出表列中給出數(shù)組名則可。應(yīng)該說明的是,對一個字符數(shù)組,如果不作初始化賦值,則必須說明數(shù)組長度。

        6.3.5 字符數(shù)組的輸入輸出

        在采用字符串方式后,字符數(shù)組的輸入輸出將變得簡單方便。

        除了上述用字符串賦初值的辦法外,還可用printf函數(shù)和scanf函數(shù)一次性輸出輸入一個字符數(shù)組中的字符串,而不必使用循環(huán)語句逐個地輸入輸出每個字符。

        【例6-12】字符數(shù)組的賦值與輸出。

        img254

        注意在本例程序的printf函數(shù)中,使用的格式字符串為"%s",表示輸出的是一個字符串。而在輸出表列中給出數(shù)組名則可。不能寫為:

        printf("%s",c[]);

        【例6-13】向一個字符數(shù)組輸入字符串,然后輸出。

        img255

        在本例程序中由于定義數(shù)組長度為15,因此輸入的字符串長度必須小于15,以留出一個字節(jié)用于存放字符串結(jié)束標志'\0'。應(yīng)該說明的是,對一個字符數(shù)組,如果不作初始化賦值,則必須說明數(shù)組長度。還應(yīng)該特別注意的是,當用scanf函數(shù)輸入字符串時,字符串中不能含有空格,否則將以空格作為串的結(jié)束符。

        例如當輸入的字符串中含有空格時,運行情況為:

        img256

        從輸出結(jié)果可以看出空格以后的字符都未能輸出。為了避免這種情況,可多設(shè)幾個字符數(shù)組分段存放含空格的串。

        程序可改寫如下:

        【例6-14】定義4個字符數(shù)組,輸入4個字符串,然后輸出。

        img257

        本程序分別設(shè)了四個數(shù)組,輸入的一行字符的空格分段分別裝入四個數(shù)組。然后分別輸出這四個數(shù)組中的字符串。

        在前面介紹過,scanf的各輸入項必須以地址方式出現(xiàn),如&a,&b等。但在前例中卻是以數(shù)組名方式出現(xiàn)的,這是為什么呢?

        這是由于C語言規(guī)定,數(shù)組名就代表了該數(shù)組的首地址。整個數(shù)組是以首地址開頭的一塊連續(xù)的內(nèi)存單元。

        如有字符數(shù)組charc[10],在內(nèi)存可表示如下圖所示。

        img258

        設(shè)數(shù)組c的首地址為2000,也就是說c[0]的單元地址為2000。則數(shù)組名c就代表這個首地址。因此在c前面不能再加地址運算符&。如寫為scanf("%s",&c);則是錯誤的。在執(zhí)行函數(shù)printf("%s",c)時,按數(shù)組名c找到首地址,然后逐個輸出數(shù)組中各個字符直到遇到字符串終止標志'\0'為止。

        免責聲明:以上內(nèi)容源自網(wǎng)絡(luò),版權(quán)歸原作者所有,如有侵犯您的原創(chuàng)版權(quán)請告知,我們將盡快刪除相關(guān)內(nèi)容。

        我要反饋