年薪50萬的C++程序員不知道字符數(shù)組!網(wǎng)友直呼:我能拿年薪100萬!

程序員段某,于2016年加入北京網(wǎng)易云公司,后來段某經(jīng)過了公司的技術(shù)面試,正式入職騰訊研究院,或?qū)⒊蔀橐幻こ處?。但是在面試的時候段某竟然不知道什么是字符數(shù)組。對此,網(wǎng)易官方表示,“雖然他基礎(chǔ)不扎實,但是開發(fā)思維活躍,這是如今難得品質(zhì)。經(jīng)過一次次面試,終于入職網(wǎng)易研究院,開始了工程師的生涯,也開始了他華麗的轉(zhuǎn)身”。

另據(jù)透露,段某性格樂觀向上,一有空閑他就拿著一本C++書籍在看,有不懂的問題也會在網(wǎng)上像技術(shù)大牛請教。

在此小編提醒大家,基礎(chǔ)還是要扎實哦。并且搜集字符數(shù)組的相關(guān)知識!

一、字符數(shù)組

1、什么叫字符數(shù)組?元素類型為char

2、字符數(shù)組定義格式: char 數(shù)組名[長度];

eg. char ch1[20];

3、字符數(shù)組初始化

(1)給出全部值,給出數(shù)組長度——值加單引號

int a[5]={1,2,3,4,5};

char s[5]={‘a(chǎn)’,’b’,’c’,’d’,’e’};

(2)給出部分值——沒有值,默認(rèn)為’’

int a[10]={1,2,3};

char s[10]={‘a(chǎn),’b’,’c’}; 從s[3]~s[9]的值都為’’

(3)給出全部值,省略數(shù)組長度

int a[ ]={1,2,3,4,5};

char s[ ]={‘a(chǎn)’,’b’,’c’,’d’};

4、字符數(shù)組元素使用

(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)存儲:一個字符存儲一個字節(jié);末尾添加

“abc”

abc

“abc def”

abcdef

“A”和’A’區(qū)別:

2、字符串作用?

存儲一個學(xué)生信息(學(xué)號,姓名,性別,年齡,分?jǐn)?shù))

char no[8];

char name[20];

?處理字符串:它就是字符數(shù)組;末尾是

3、字符串輸入

(1)使用for循環(huán)

char name[20],ch;

int i;

for(i=0;(ch=getchar( ))!=’

’;i++) /*循環(huán)條件:輸入的字符不是回車*/

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”,數(shù)組名);

%d %f %c %s

eg. char name[20];

scanf(“%s”,name);

?說明1:后面數(shù)組名,沒有&

?說明2:不能接收空格;輸入到空格結(jié)束

char name[20];

scanf(“%s”,name); 輸入abc def ghi

name里面存儲只有abc

(3)gets函數(shù)輸入

?格式:gets(數(shù)組名)

char name[20];

gets(name);

?說明1:數(shù)組名

?說明2:可以接收空格;遇到回車時候,結(jié)束

char name[20];

gets(name); 輸入abc def

name里面保持abc def

4、字符串輸出

(1)循環(huán)——for

for(i=0;c[i]!=’’;i++)

(2)格式輸出——printf + %s

printf(“%s”,數(shù)組名)

(3)puts函數(shù)

puts(數(shù)組名)

char name[20];

gets(name);

5、字符串基本操作

原則:輸入gets()

輸出puts()

處理:一個字符一個字符 for(i=0;str[i]!=’’;i++)

處理str[i]

分析:統(tǒng)計個數(shù)——計數(shù)

用字符數(shù)組(大小,輸入)

計數(shù)——

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]是數(shù)字,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、常用字符串處理函數(shù)

?#include

(1)求字符串長度strlen( )

格式:strlen(數(shù)組名)

功能:返回字符串有效字符個數(shù)(不含)

char str1[20]=”abc”;

int m=strlen(str1); m=3

char s2[20]={“abcdefgh”};

int m=strlen(s2); m=3

(2)字符串拷貝函數(shù)strcpy()

格式:strcpy(str1,str2)

功能:把str2復(fù)制到str1(連str2中的一起復(fù)制)

eg. char s1[ 20]=”abcd”;

char s2[20]=”xx”;

strcpy(s1,s2);

puts(s1);

xxd

(3)字符串連接strcat

格式:strcat(str1,str2)

功能:去掉str1末尾;

復(fù)制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)字符串比較函數(shù) strcmp()

?格式:strcmp(str1,str2)

?功能:如果串1大于串2,返回正數(shù)(1)

如果串1等于串2,返回0

如果串1小于串2,返回負(fù)數(shù)(-1)

eg. 比較“abcd”和“abcf” 串1《串2

“abcd”和“abcd” 串1=串2

“abcd”和“abc”

“abcd”和“abx”

就我個人經(jīng)歷而言,我花了10年的時間積累了ESFramework通信框架和OMCS語音視頻框架,單靠它們的收入,滿足家庭的生活開銷已經(jīng)足夠了。我作為一個高級的程序員,既然我可以做到,我相信后來人也可以做到,甚至做得比我更好。祝福大家。

喜歡的話關(guān)注收藏評論轉(zhuǎn)發(fā)一波 比心么么噠!

?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時請結(jié)合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容