程序員段某,于2016年加入北京網易云公司,后來段某經過了公司的技術面試,正式入職騰訊研究院,或將成為一名工程師。但是在面試的時候段某竟然不知道什么是字符數組。對此,網易官方表示,“雖然他基礎不扎實,但是開發思維活躍,這是如今難得品質。經過一次次面試,終于入職網易研究院,開始了工程師的生涯,也開始了他華麗的轉身”。
另據透露,段某性格樂觀向上,一有空閑他就拿著一本C++書籍在看,有不懂的問題也會在網上像技術大牛請教。
在此小編提醒大家,基礎還是要扎實哦。并且搜集字符數組的相關知識!
一、字符數組
1、什么叫字符數組?元素類型為char
2、字符數組定義格式: char 數組名[長度];
eg. char ch1[20];
3、字符數組初始化
(1)給出全部值,給出數組長度——值加單引號
int a[5]={1,2,3,4,5};
char s[5]={‘a’,’b’,’c’,’d’,’e’};
(2)給出部分值——沒有值,默認為’’
int a[10]={1,2,3};
char s[10]={‘a,’b’,’c’}; 從s[3]~s[9]的值都為’’
(3)給出全部值,省略數組長度
int a[ ]={1,2,3,4,5};
char s[ ]={‘a’,’b’,’c’,’d’};
4、字符數組元素使用
(1)輸入
int a[10],i;
for(i=0;i<=9;i++)
scanf(“%d”,&a[i]);
char s[10];
int i;
for(i=0;i<=9;i++)
scanf(“%c”,&s[i]);
(2)輸出
char s[10];
int i;
for(i=0;i<=9;i++)
printf(“%c”,s[i]);
效果圖1:
二、字符串
1、什么是字符串?
(1)形式:用一對雙引號括起來若干個字符
“abc ” “english” “a”
(2)存儲:一個字符存儲一個字節;末尾添加
“abc”
abc
“abc def”
abcdef
“A”和’A’區別:
2、字符串作用?
存儲一個學生信息(學號,姓名,性別,年齡,分數)
char no[8];
char name[20];
?處理字符串:它就是字符數組;末尾是
3、字符串輸入
(1)使用for循環
char name[20],ch;
int i;
for(i=0;(ch=getchar( ))!=’
’;i++) /*循環條件:輸入的字符不是回車*/
name[i]=ch;
ch[i]=’’;
eg.int i=0;
ch=getchar();
while(ch!=’
’)
{ name[i]=ch;
ch=getchar();
i++;
}
ch[i]=’’;
(2)格式控制輸入——scanf + %s
?格式:scanf(“%s”,數組名);
%d %f %c %s
eg. char name[20];
scanf(“%s”,name);
?說明1:后面數組名,沒有&
?說明2:不能接收空格;輸入到空格結束
char name[20];
scanf(“%s”,name); 輸入abc def ghi
name里面存儲只有abc
(3)gets函數輸入
?格式:gets(數組名)
char name[20];
gets(name);
?說明1:數組名
?說明2:可以接收空格;遇到回車時候,結束
char name[20];
gets(name); 輸入abc def
name里面保持abc def
4、字符串輸出
(1)循環——for
for(i=0;c[i]!=’’;i++)
(2)格式輸出——printf + %s
printf(“%s”,數組名)
(3)puts函數
puts(數組名)
char name[20];
gets(name);
5、字符串基本操作
原則:輸入gets()
輸出puts()
處理:一個字符一個字符 for(i=0;str[i]!=’’;i++)
處理str[i]
分析:統計個數——計數
用字符數組(大小,輸入)
計數——
void main()
{
char str[100];
int n1=0,n2=0,n3=0,i;
gets(str);
for(i=0;str[i]!=’’;i++)
/*如果str[i]是字母,n1++;否則,如果str[i]是數字,n2++;否則,n3++*/
if(str[i]>=’A’&&str[i]<=’Z’ ||str>=’a’&&str[i]<=’z’)
n1++;
else if(str[i]>=’0’ &&str[i]<=’9’)
n2++;
else
n3++;
}
6、常用字符串處理函數
?#include
(1)求字符串長度strlen( )
格式:strlen(數組名)
功能:返回字符串有效字符個數(不含)
char str1[20]=”abc”;
int m=strlen(str1); m=3
char s2[20]={“abcdefgh”};
int m=strlen(s2); m=3
(2)字符串拷貝函數strcpy()
格式:strcpy(str1,str2)
功能:把str2復制到str1(連str2中的一起復制)
eg. char s1[ 20]=”abcd”;
char s2[20]=”xx”;
strcpy(s1,s2);
puts(s1);
xxd
(3)字符串連接strcat
格式:strcat(str1,str2)
功能:去掉str1末尾;
復制str2到str1有效字符
添加
char s1[20]=”abc”;
char s2[20]=”def”;
strcat(s1,s2);
abcdef
?不論使用strcpy,strcat,不能超過長度
char s1[5]=”abc”;
char s2[10]=”abcdefg”;
strcpy(s1,s2); 出錯
strcat(s1,s2);
(4)字符串比較函數 strcmp()
?格式:strcmp(str1,str2)
?功能:如果串1大于串2,返回正數(1)
如果串1等于串2,返回0
如果串1小于串2,返回負數(-1)
eg. 比較“abcd”和“abcf” 串1《串2
“abcd”和“abcd” 串1=串2
“abcd”和“abc”
“abcd”和“abx”
就我個人經歷而言,我花了10年的時間積累了ESFramework通信框架和OMCS語音視頻框架,單靠它們的收入,滿足家庭的生活開銷已經足夠了。我作為一個高級的程序員,既然我可以做到,我相信后來人也可以做到,甚至做得比我更好。祝福大家。
喜歡的話關注收藏評論轉發一波 比心么么噠!