目錄
#include
int main(int argc, const char * ar**) ;
printf("name1 --> %s\n", name1); // name1 --> zhangsan
// 部分初始化中,沒有被初始化的元素預設是0, \0 對應的ascii值是 0
char name2[9] = ;
printf("name2 --> %s\n", name2); // name2 --> zhangsan
// 字串的本質就是陣列
char name3 = "lisi";
printf("name3 --> %s \n", name3); // name3 --> lisi
name3[0] = 'x';
printf("name3 --> %s \n", name3); // name3 --> xisi
return 0;
}字串輸出可以使用printf 和 puts 進行輸出,各有利弊
- 輸出字串
- 使用printf的%s佔位符輸出
- 弊端:如果想要換行,必須加上\n
- 優點:可以自定義格式化需要的字串,也就是可以按照我們需要的格式來輸出
- 使用puts函式進行輸出
- 優點:可以自動換行
- 缺點:不可以自定義格式,只能原樣輸出
// printf
cwww.cppcns.comhar str = 「lisi」;
printf(「name = %s!!!\n」, str);
printf("-----\n");
// puts
// 自動換行,只能原樣輸出
puts(str);
printf("----\n");
#### 字串輸入
字串輸入可以使用 scanf 和 gets 進行輸入,各有利弊
// scanf
printf("請輸入乙個字串:\n");
char buf[10];
scanf("%s", buf); // 輸入:fdsa fdas
printf("buf --> %s\n", buf); // buf --> fdsa
// gets
char buf[10];
printf("請輸入乙個字串,使用gets接收:\n");
gets(buf);
printf("buf --> %s\n", buf); // buf --> fdsaf fdsa
計算字串的長度
#include
#include
// 申明函式
int stringlen(char value);
int main(int argc, const char * ar**)
// 自定義計算字串長度的函式
int stringlen(char value)
return count;
}字串拼接
使用內建方法strcat進行2個字串拼接,將後者拼接到前者後面,前提是前者空餘的長度要大於後者的長度,否則會報錯
使用內建方法strncat進行2個字串拼接,可以指定將後者的前多少個字元與前者進行拼接
// 字串拼接
char str1[20] = "hello";
char str2[10] = " world";
printf("str1拼接前 --> %s\n", str1); // str1拼接前 --> hello
printf("str2拼接前 --> %s\n", str2); // str2拼接前 --> world
strcat(str1, str2);
printf("\n");
printf("str1拼接後 --> %s\n", str1); // str1拼接後 --> hello world
printf("str2拼接後 --> %s\n", str2); // str2拼接後 --> world
// 使用 strncat 可以指定將後者的前多少個字元與前者進行拼接
strncat(str1, str2, 3); // 最後乙個引數3表示指定str2的前多少個字元拼接到str1後面
printf("str1拼接後 --> %s\n", str1); // str1拼接後 --> hello world wo
printf("str2拼接後 --> %s\n", str2); // str2拼接後 --> world
字串拷貝
strcpy 函式會將源的資料拷貝到目錄中,並且會覆蓋掉目標中原有的資料,目標的長度必須能夠存放拷貝的資料,長度不夠會報錯
strncpy 函式在strcpy函式的基礎之上,增加乙個引數,可以指定拷貝幾個字元0
// 將str2中的內容拷貝到str1中
char str1[20] = "hello";
char str程式設計客棧2 = " world!";
printf("str1 拷貝前 --> %s\n", str1); // str1 --> hello
printf("str2 拷貝前 --> %s\n", str2); // str2 --> world!
strcpy(str1, str2);
printf("str1 拷貝後 --> %s\n", str1); // str1 --> world!
printf("str2 拷貝後 --> %s\n", str2); // str2 --> world!
// strncpy 函式在strcpy函式的基礎之上,增加乙個引數,可以指定拷貝幾個字元
char str3[20] = "hello";
char str4 = "_world!";
strncpy(str3, str4, 2);
printf("str3 拷貝後 --> %s\n", sfhzeitr3); // str3 拷貝後 --> _wllo
printf("str4 拷貝後 --> %s\n", str4); // str4 拷貝後 --> _world!
字串比較
strcmp 會對傳入的字串進行比較,比較完畢後會返回乙個整型的值
/*int result = strcmp(str1, str2)
如果result等於0,證明兩個字串相等
如果result小於0,證明str1小於str2
如果result大於0,證明str1大於str2
*/char str1 = "abc";
char str2 = "abc";
int result = strcmp(str1, str2);
printf("result --> %i\n", result); // result --> 0
char str1 = "ab1";
char str2 = "abc";
int result = strcmp(str1, str2);
printf("result --> %i\n", result); // result --> -50
char str1 = "absadsa";
char str2 = "abc";
int result = strcmp(str1, str2);
printf("result --> %i\n", result); // result --> 16
如果想儲存一堆字串可以使用字串陣列,字串陣列就是二維陣列
char names[5][20] =
詳解C語言中的字串陣列
在c語言當中,字串陣列可以使用 char a 10 或者 char a 表示 第一種表示方式固定了每個字串的最大大小。第二種沒有字串的大小限制。include include 該程式的功能是 輸入阿拉伯數字的月份數 輸出英文月份 int methbxrain char程式設計客棧 curmonth ...
c語言中的字元陣列與字串
一 字元陣列的定義 一維字元陣列 用於儲存和處理1個字串,其定義格式與一維數值陣列一樣。char str 20 二維字元陣列 用於同時儲存和處理多個字串,其定義格式與二維數值陣列一樣。char country 10 20 country 第i個字串 二 字元陣列的初始化 字元陣列的初始化.1.可以通...
c語言中的字串與字元陣列
1 字元陣列的定義與初始化 字元陣列的初始化,最容易理解的方式就是逐個字元賦給陣列中各元素。char str 10 即把10個字元分別賦給str 0 到str 9 10個元素 如果花括號中提供的字元個數大於陣列長度,則按語法錯誤處理 若小於陣列長度,則只將這些字元陣列中前面那些元素,其餘的元素自動定...