一、字串的三種形式
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先...