scanf
-
scanf
每次讀入一個(gè)字符串,遇到空格外臂,回車或者tab
為止郑兴,下次繼續(xù)讀未讀完的數(shù)據(jù)犀斋,相比而言,getchar
每次讀入一個(gè)字符情连。 - 可以用
scanf("%7s",string)
叽粹,%后的數(shù)字來約束讀取的字符串長(zhǎng)度
在c中,字符串是以數(shù)組的形式存在的蒙具,
除了明顯的元素球榆,在字符串?dāng)?shù)組的最后一位是'\0'
朽肥,等同于0
,
表示字符串結(jié)束符禁筏,常用于遍歷字符串的結(jié)束條件如
while((*p)!='\0'){//*p表示數(shù)組中的元素
printf("%c",*p);
p++;
}
字符串的初始化
#include <stdio.h>
int main (void)
{
char *s="happy";//這種定義數(shù)組的方式元素不能修改,
//字符串和還可以定義為 char s[]=”happy"
//這種定義元素是可以修改的
char s[]="happy";//這種定義元素是可以修改的
s[0] ='n' ;//如果定義為char *s的形式衡招,執(zhí)行這條語句會(huì)崩潰
printf("%c",s[0]);
return 0;
}
將字符寫入數(shù)組
#include <stdio.h>
int main (void)
{
char string[10];
//scanf("%s",string) ;//用 %s 來給數(shù)組初始化,并且scanf會(huì)讀入連續(xù)
//的單詞篱昔,到空格,tab或者回車為止
scanf ("%7s",string) ;//在s前加數(shù)字指定要讀入的位數(shù)始腾,避免溢出
char *p=string;
while((*p)!='\0'){
printf("%c",*p);
p++;
}
return 0;
}
常見的字符串定義方式
char **a
,表示a是一個(gè)指針州刽,指向另一個(gè)指針,那個(gè)指針指向一個(gè)元素
char a[][10]
,表示a是一個(gè)數(shù)組浪箭,數(shù)組中每個(gè)元素相當(dāng)與char[10]
,也就是說每個(gè)元素
其實(shí)是一個(gè)指針
常見字符串函數(shù)
字符串函數(shù)全部定義在頭文件<stdlib>
中穗椅,