字串基礎

2021-09-01 02:41:20 字數 1720 閱讀 6553

一、字串的三種形式

1." ";雙引號之間的字串(結尾自動新增'\0')。

2.以'\0'結尾的字串陣列。

3.string(stl);這裡不做過多解釋,以後再做詳解。

二、字串的輸入輸出

1.scanf();遇見空格、換行輸入結束。回車時自動新增『\0』;在處理字元時,輸入回車或者空格,這些字元會寫入輸入流中,儲存在輸入流中,下次如果需要輸入字元時,沒等輸入時,會直接把這些字元讀入。

scanf("%d",a);

scanf("%c",b);

//此時的輸入就會造成錯誤,當你輸入數字以回車結束後,回車符會儲存在輸入流中。

//後面再需要輸入時,會直接把輸入流中的回車符賦值給b

//解決方法

//1.

scanf("%d",a);

scanf(" %c",b);

//輸入字元時,在%c前面加上空格即可把輸入流中的字元吃掉

//2.

scanf("%d",a);

getchar();//可將回車符吃掉.

scanf("%c",b);

hdu 2027----統計母音

ac**:

#include#include#includechar b[105];

int main()

return 0;

}

2.scanf("%s",a);

用scanf();需注意最後一位自動新增'\0'造成的陣列越界問題。

char a[5];

scanf("%s",a);

//輸入1 2 3 4 5會造成陣列越界,最後自動新增的'\0'沒有儲存位置。

hdu 2017----字串統計

ac**:

//統計數字字元出現的次數

#include#include#includechar a[10000];

int main()

printf("%d\n",count);

}return 0;

}

3.如果我們要輸入帶空格的字串此時就需要用別的辦法了,下面有兩種辦法。

<1>(避免陣列越界)cin.getline(a,sizeof(a));()//遇空格不結束輸入,回車不寫入a,同時,回車也不寫入輸入流中;輸入陣列的長度應該為a.size-1。(此輸入辦法不常用)

<2>(常用方法)gets(a);//讀入一行,結尾自動新增'\0';回車不寫入a,,同時,回車也不寫入輸入流中,但是此函式可能導致陣列越界。

hdu 2026----首字母變大寫

ac**:

#include#include#includechar a[10000];

int main()

}for(int i=n+1;i>index;i--)

a[index]=e;//最後將空出來的位置賦值即可

}else}}

if(index!=-1)

puts(a);

else

printf("not exist\n");

return 0;

}

注:陣列初始化

1.全域性變數

2.for(int i=0;ib[i]=0;

3.memset(b,0,sizeof(b));(按照記憶體初始化,較快)

基礎 字串型別

github mysql 中提供多種字串儲存型別,分別為 char,varchar,binary,varbinary,blob,text,enum 和 set 等等型別。咱們主要選擇最常用的分析。對於 char 和 varchar 型別,mysql 與 oracle 同樣是用於儲存字串,但是設計邏輯...

Java 基礎 字串

string 物件建立後則不能被修改,是不可變的,所謂的修改其實是建立了新的物件,所指向的記憶體空間不同。如下所示 執行結果 結合上面的 關於字串小夥伴們必須需要了解滴 1 通過 string s1 愛慕課 宣告了乙個字串物件,s1 存放了到字串物件的引用,在記憶體中的存放引用關係如下圖所示 2 一...

C字串基礎

include include int main printf s n name mhm printf s n name2 12mhm,說明從低位址一直往高位址讀,一直讀到 0為止 printf p n name c68 printf p n name2 c66 通過以上倆位址,可以看出,name先...