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