scanf
-
scanf
每次讀入一個字符串,遇到空格,回車或者tab
為止,下次繼續讀未讀完的數據,相比而言,getchar
每次讀入一個字符。 - 可以用
scanf("%7s",string)
,%后的數字來約束讀取的字符串長度
在c中,字符串是以數組的形式存在的,
除了明顯的元素,在字符串數組的最后一位是'\0'
,等同于0
,
表示字符串結束符,常用于遍歷字符串的結束條件如
while((*p)!='\0'){//*p表示數組中的元素
printf("%c",*p);
p++;
}
字符串的初始化
#include <stdio.h>
int main (void)
{
char *s="happy";//這種定義數組的方式元素不能修改,
//字符串和還可以定義為 char s[]=”happy"
//這種定義元素是可以修改的
char s[]="happy";//這種定義元素是可以修改的
s[0] ='n' ;//如果定義為char *s的形式,執行這條語句會崩潰
printf("%c",s[0]);
return 0;
}
將字符寫入數組
#include <stdio.h>
int main (void)
{
char string[10];
//scanf("%s",string) ;//用 %s 來給數組初始化,并且scanf會讀入連續
//的單詞,到空格,tab或者回車為止
scanf ("%7s",string) ;//在s前加數字指定要讀入的位數,避免溢出
char *p=string;
while((*p)!='\0'){
printf("%c",*p);
p++;
}
return 0;
}
常見的字符串定義方式
char **a
,表示a是一個指針,指向另一個指針,那個指針指向一個元素
char a[][10]
,表示a是一個數組,數組中每個元素相當與char[10]
,也就是說每個元素
其實是一個指針
常見字符串函數
字符串函數全部定義在頭文件<stdlib>
中,