二維碼
微世推網(wǎng)

掃一掃關(guān)注

當(dāng)前位置: 首頁(yè) » 快報(bào)資訊 » 今日快報(bào) » 正文

C語(yǔ)言字符串輸入及輸出的幾種方式

放大字體  縮小字體 發(fā)布日期:2023-01-13 00:38:58    作者:郭子龍    瀏覽次數(shù):203
導(dǎo)讀

1.字符串?dāng)?shù)組+初始化char s1[]="array";//字符數(shù)組char s2[6]="array";//數(shù)組長(zhǎng)度=字符串長(zhǎng)度+1,因?yàn)樽址┪矔?huì)自動(dòng)添‘\0‘printf("%s,%c\n",s1,s2[2]);//array,r2.字符串指針+初始化char *sp="pointer";//字符指針printf("%s,%c,%c\n",sp,*sp,*(sp+2));//pointer,p,i3.數(shù)組+

1.字符串?dāng)?shù)組+初始化

char s1[]="array"; //字符數(shù)組char s2[6]="array"; //數(shù)組長(zhǎng)度=字符串長(zhǎng)度+1,因?yàn)樽址┪矔?huì)自動(dòng)添‘\0‘printf("%s,%c\n",s1,s2[2]); //array,r

2.字符串指針+初始化

char *sp="pointer"; //字符指針printf("%s,%c,%c\n",sp,*sp,*(sp+2)); //pointer,p,i

3.數(shù)組+scanf

char s1[6];scanf("%s\n",s1);printf("%s,%c\n",s1,s1[2]); //array,r

4.指針+scanf

#include <stdio.h>#include<stdlib.h> //該頭文件別忘加,否則使用malloc會(huì)報(bào)錯(cuò)int main(){ char *sp; sp=(char *)malloc(sizeof(char)); scanf("%s\n",sp); printf("%s,%c\n",sp,*sp);//pointer,p return 0;}

或者

#include <stdio.h>#include<stdlib.h>int main(){ char *sp[10]; //初始化空間 int i=0; for(i=0;i<10;i++) { //scanf("%s\n",sp[i]); //這是錯(cuò)誤得,會(huì)把第壹個(gè)數(shù)組地址得第i個(gè)位置之后得字符給覆蓋掉 scanf("%s\n",sp+i); } for(i=0;i<10;i++) { printf("%s\n",sp+i);//pointer } return 0;}

或者

#include <stdio.h>#include<stdlib.h>int main(){ char sp[10][100]; //初始化空間 int i=0; for(i=0;i<10;i++) { scanf("%s\n",sp[i]); //等同于sp[1][100] } for(i=0;i<10;i++) { printf("%s\n",sp[i]);//pointer } return 0;}

5.指針+數(shù)組+scanf

char str[60], *sp=str;//將數(shù)組得首地址str賦給指針變量spscanf("%s\n",sp);printf("%s,%c,%c\n",sp,*sp,*(sp+3));//pointer,p,nprintf("%s,%c,%c\n",str,str[0],str[3]);//pointer,p,n

6.注意:如下方法控制臺(tái)運(yùn)行會(huì)終止

char *sp;//sp未初始化指向不明scanf("%s\n",sp);printf("%s\n",sp);

7.用scanf和gets( 字符數(shù)組名或指針)進(jìn)行輸入得區(qū)別:

char str1[60],str2[60];gets(str1); //gets()函數(shù)將接收輸入得整個(gè)字符串直到遇到換行為止printf("%s\n",str1);scanf("%s\n",str2);//scanf如果輸入了空格會(huì)認(rèn)為字符串結(jié)束,空格后得字符將作為下一個(gè)輸入項(xiàng)處理printf("%s\n",str2);8.使用while(scanf("%d",&n)!=EOF){ }實(shí)現(xiàn)多組測(cè)試數(shù)據(jù)輸入,而不在輸入完一組數(shù)據(jù)后退出控制臺(tái)

8.使用while(scanf("%d",&n)!=EOF){ }實(shí)現(xiàn)多組測(cè)試數(shù)據(jù)輸入,而不在輸入完一組數(shù)據(jù)后退出控制臺(tái)

char s1[60],s2[60];int cnt; //用來(lái)測(cè)試scanf返回被輸入函數(shù)成功賦值得變量個(gè)數(shù)while((cnt=scanf("%s%s",s1,s2))!=EOF){ //當(dāng)按下ctr+z終止輸入時(shí),scanf會(huì)返回EOF(-1)\n printf("scanf返回了%d, s1是%s,s2是%s, 這行輸出下方可以繼續(xù)進(jìn)行輸入\n",cnt,s1,s2); //scanf若成功輸入str1和str2則返回2}printf("%d",cnt);//當(dāng)按下ctr+z后會(huì)執(zhí)行該條輸出-1

 
(文/郭子龍)
免責(zé)聲明
本文僅代表發(fā)布者:郭子龍個(gè)人觀點(diǎn),本站未對(duì)其內(nèi)容進(jìn)行核實(shí),請(qǐng)讀者僅做參考,如若文中涉及有違公德、觸犯法律的內(nèi)容,一經(jīng)發(fā)現(xiàn),立即刪除,需自行承擔(dān)相應(yīng)責(zé)任。涉及到版權(quán)或其他問(wèn)題,請(qǐng)及時(shí)聯(lián)系我們刪除處理郵件:weilaitui@qq.com。
 

Copyright?2015-2025 粵公網(wǎng)安備 44030702000869號(hào)

粵ICP備16078936號(hào)

微信

關(guān)注
微信

微信二維碼

WAP二維碼

客服

聯(lián)系
客服

聯(lián)系客服:

24在線QQ: 770665880

客服電話: 020-82301567

E_mail郵箱: weilaitui@qq.com

微信公眾號(hào): weishitui

韓瑞 小英 張澤

工作時(shí)間:

周一至周五: 08:00 - 24:00

反饋

用戶
反饋