年薪50萬的C++程序員不知道字符數組!網友直呼:我能拿年薪100萬!

程序員段某,于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語音視頻框架,單靠它們的收入,滿足家庭的生活開銷已經足夠了。我作為一個高級的程序員,既然我可以做到,我相信后來人也可以做到,甚至做得比我更好。祝福大家。

喜歡的話關注收藏評論轉發一波 比心么么噠!

?著作權歸作者所有,轉載或內容合作請聯系作者
平臺聲明:文章內容(如有圖片或視頻亦包括在內)由作者上傳并發布,文章內容僅代表作者本人觀點,簡書系信息發布平臺,僅提供信息存儲服務。

推薦閱讀更多精彩內容