在 c 語言中,字串是由數字、字母、下劃線組成的一維字元陣列,並且使用 null 字元 '\0' 作為終止符號。
字串在儲存上類似字元陣列,所以它每一位的單個元素都是可以提取的,如s=「abcdefg」,則s[0]=「a」,s[1]="b"。
字元實際上是以對應的ascii數值的形式在記憶體中儲存的。 對乙個字元強制轉換成int型別,得到的就是該字元的ascii碼。
字元與字元相減,其實就是它們對應的ascii碼相減,得到的是它們的ascii碼之間相差的距離。
函式返回字串的兩個條件1. 返回乙個字串位址(首位址), 2. 保證這塊位址的記憶體空間不會隨著函式退出而銷毀
將字串指標作為函式引數傳入,並返回該指標
使用malloc申請的堆空間,返回申請的堆位址,注意釋放
返回乙個static定義的靜態區域性變數
使用全域性變數
1. 將字串指標作為函式引數傳入,並返回該指標
char* strcpy(char* des,const char* source)2. 使用malloc函式動態分配記憶體,函式可以返回該記憶體位址
malloc申請的記憶體位於堆上,不會被系統自動釋放掉,可以從函式中返回,但是切記要在主調函式中使用free主動釋放該空間。
#include#include
#include
char * return_pchar_malloc()
int main()
3. 返回乙個靜態區域性變數
使用static修飾的靜態變數存放位置是在全域性資料區,在主程式執行的整個生命週期中都存在,不會隨著函式的退出而銷毀。
#include#include
#include
char * return_pchar_static()
int main()
4. 使用全域性變數
全域性變數是老大,沒啥說的。
那麼可否在函式中返回乙個常量字串指標?如下:
#include答案是可以的,但也是危險的!#include
#include
char* return_pstr()
int main()
字元常量位於靜態資料區里的文字常量區,生命週期是整個函式,但是字元常量是唯讀的,任何嘗試修改字元常量的操作都會導致執行錯誤。
#include#include#include//數字轉換成字串
void itoa(int num,char* str)
str[i]='\0';
length = strlen(str);
//字元逆序,注意終止條件是長度的一半
for(int j=0;j#include#include//實現兩個字串複製
char* strcpy_(char* strs, char* strt)
while((*temp++=*strs++)!='\0');
return strt; //返回的是字串首位址
}int main()
#include#include#include//字串迴圈移動n位
char* strcir(char* str, int n)
temp[move]=str[i];
}temp[length]='\0';
return temp; //返回的是字串首位址}
int main()
如給定字串「this is a sentence」,轉換成"sentence a is this"。
#include#include#include//反轉區間字串
void reverse_str(char* left, char* right)
char* s0, *s1;
int amount = 0;
while(*str!='\0')
if(*s1=='\0')
str++;
}return amount;
}int main()
#include#include#include//首個匹配字串的起始位置
int position(char* str,int n, char *str_son,int n_son)
if(n<=0||n_son<=0||n_son>n)
int i=0;
for(;i
給定字串a和b,輸出a和b中的最大公共子串。比如a="aocdfe" b="pmcdfa" 則輸出"cdf"
#include#include#include//兩個字串的最大公共字串(重要)
char* max_sub_str(char* str1,int str1_l, char* str2, int str2_l)
p_str_help=0;
}
}free(max_sub_help);
return max_sub;
}
int main()
C 字串基本操作
一 知乎總結 1 string類介紹 2 容器操作 3 修改 4 查詢 5 比較 二 常用操作 c風格字串 c風格字串初始化 c風格字串常見操作 string類 string類初始化 string類常見操作 char greeting hello 字串初始化用雙引號,字元初始化用單引號 cout s...
C風格字串基本操作
與字串相關的基本操作包括strlen,strcpy,strcat,strcmp,strchr,strspn,strcspn,strpbrk,strstr,strtok等。在有些平台上,strcpy等使用較多的操作可能直接使用彙編 編寫,本文採用c語言來編寫這些函式,然後說說與其相關的一些內容。str...
C 字串及基本操作
string類 ps 更多資料結構知識詳見 常見陣列結構與演算法 char greeting hello 字串初始化用雙引號,字元初始化用單引號 coutstrcpy s1,s2 strcat s1,s2 strlen s1 返回s1的長度 不加 0 sizeof s1 返回字串陣列大小 strcm...