C語言-字符串處理

      網(wǎng)友投稿 827 2022-05-28

      1. 前言

      字符串在C語言里使用非常多,因為很多數(shù)據(jù)處理都是文本,也就是字符串,特別是設(shè)備交互、web網(wǎng)頁交互返回的幾乎都是文本數(shù)據(jù)。

      字符串本身屬于字符數(shù)組、只不過和字符數(shù)組區(qū)別是,字符串結(jié)尾有’

      字符串本身屬于字符數(shù)組、只不過和字符數(shù)組區(qū)別是,字符串結(jié)尾有’\0’。 字符串因為規(guī)定結(jié)尾有'\0',在計算長度、拷貝、查找、拼接操作都很方便。

      ’。 字符串因為規(guī)定結(jié)尾有'

      字符串本身屬于字符數(shù)組、只不過和字符數(shù)組區(qū)別是,字符串結(jié)尾有’\0’。 字符串因為規(guī)定結(jié)尾有'\0',在計算長度、拷貝、查找、拼接操作都很方便。

      ',在計算長度、拷貝、查找、拼接操作都很方便。

      2. 字符串的定義

      char buff[]="我是一個字符串"; char a[]="1234567890"; char b[]="abc"; char c[]={'a','b','c','

      char buff[]="我是一個字符串"; char a[]="1234567890"; char b[]="abc"; char c[]={'a','b','c','\0'};

      '};

      在普通的字符數(shù)組結(jié)尾加一個

      在普通的字符數(shù)組結(jié)尾加一個 \0 就變成了字符串。

      就變成了字符串。

      3. 處理字符串里字母大小寫

      將字符串里所有大寫字母全部換成小寫字母。或者小寫字母全部換成大寫字母。可以通過形參進行區(qū)分。

      #include #include #include void func(char *str,int flag); int main() { char buff[100]; printf("從鍵盤上輸入字符串:"); scanf("%s",buff); printf("源字符串:%s\n",buff); func(buff,0); printf("大寫轉(zhuǎn)換小寫:%s\n",buff); func(buff,1); printf("小寫轉(zhuǎn)大寫:%s\n",buff); return 0; } //函數(shù)功能: 大寫小寫轉(zhuǎn)換 //flag=0表示大寫轉(zhuǎn)換小寫 =1表示小寫轉(zhuǎn)大寫 void func(char *str,int flag) { int data; while(*str!='

      #include #include #include void func(char *str,int flag); int main() { char buff[100]; printf("從鍵盤上輸入字符串:"); scanf("%s",buff); printf("源字符串:%s\n",buff); func(buff,0); printf("大寫轉(zhuǎn)換小寫:%s\n",buff); func(buff,1); printf("小寫轉(zhuǎn)大寫:%s\n",buff); return 0; } //函數(shù)功能: 大寫小寫轉(zhuǎn)換 //flag=0表示大寫轉(zhuǎn)換小寫 =1表示小寫轉(zhuǎn)大寫 void func(char *str,int flag) { int data; while(*str!='\0') { if(flag) { if(*str>='a'&& *str<='z') //小寫 { *str=*str-32; } } else { if(*str>='A'&& *str<='Z') //小寫 { *str=*str+32; } } str++; } }

      ') { if(flag) { if(*str>='a'&& *str<='z') //小寫 { *str=*str-32; } } else { if(*str>='A'&& *str<='Z') //小寫 { *str=*str+32; } } str++; } }

      4. 從鍵盤上錄入2個字符串,判斷是否相等

      #include int main() { char str1[100]; char str2[100]; int i=0; /*1. 錄入數(shù)據(jù)*/ printf("輸入字符串1:"); scanf("%s",str1); printf("輸入字符串2:"); scanf("%s",str2); /*2. 比較字符串*/ while(str1[i]!='

      #include int main() { char str1[100]; char str2[100]; int i=0; /*1. 錄入數(shù)據(jù)*/ printf("輸入字符串1:"); scanf("%s",str1); printf("輸入字符串2:"); scanf("%s",str2); /*2. 比較字符串*/ while(str1[i]!='\0'||str2[i]!='\0') { if(str1[i]!=str2[i])break; i++; } if(str1[i]=='\0'&&str2[i]=='\0') { printf("字符串相等.\n"); } else { printf("字符串不相等.\n"); } return 0; }

      '||str2[i]!='

      #include int main() { char str1[100]; char str2[100]; int i=0; /*1. 錄入數(shù)據(jù)*/ printf("輸入字符串1:"); scanf("%s",str1); printf("輸入字符串2:"); scanf("%s",str2); /*2. 比較字符串*/ while(str1[i]!='\0'||str2[i]!='\0') { if(str1[i]!=str2[i])break; i++; } if(str1[i]=='\0'&&str2[i]=='\0') { printf("字符串相等.\n"); } else { printf("字符串不相等.\n"); } return 0; }

      ') { if(str1[i]!=str2[i])break; i++; } if(str1[i]=='

      #include int main() { char str1[100]; char str2[100]; int i=0; /*1. 錄入數(shù)據(jù)*/ printf("輸入字符串1:"); scanf("%s",str1); printf("輸入字符串2:"); scanf("%s",str2); /*2. 比較字符串*/ while(str1[i]!='\0'||str2[i]!='\0') { if(str1[i]!=str2[i])break; i++; } if(str1[i]=='\0'&&str2[i]=='\0') { printf("字符串相等.\n"); } else { printf("字符串不相等.\n"); } return 0; }

      '&&str2[i]=='

      #include int main() { char str1[100]; char str2[100]; int i=0; /*1. 錄入數(shù)據(jù)*/ printf("輸入字符串1:"); scanf("%s",str1); printf("輸入字符串2:"); scanf("%s",str2); /*2. 比較字符串*/ while(str1[i]!='\0'||str2[i]!='\0') { if(str1[i]!=str2[i])break; i++; } if(str1[i]=='\0'&&str2[i]=='\0') { printf("字符串相等.\n"); } else { printf("字符串不相等.\n"); } return 0; }

      ') { printf("字符串相等.\n"); } else { printf("字符串不相等.\n"); } return 0; }

      C語言-字符串處理

      5. 從鍵盤上錄入一個字符串,按照小到大的順序排序

      #include #include int main() { char str1[100]; int len=0; int i,j; int tmp; printf("輸入要排序的字符串:"); scanf("%s",str1); len=strlen(str1); //開始排序 for(i=0;istr1[j+1]) { tmp=str1[j]; str1[j]=str1[j+1]; str1[j+1]=tmp; } } } printf("排序之后的字符串:%s\n",str1); return 0; }

      6. 從鍵盤上輸入一個整數(shù):將整數(shù)轉(zhuǎn)為字符串輸出

      比如:int a; scanf(“%d”,&a); 使用字符串形式打印出a的值。

      #include #include int main() { char str[100]; char str1[100]; int data=0; int j=0,i=0; printf("從鍵盤上輸入整數(shù):"); scanf("%d",&data); // 123 -->'1' '2' '3' while(data) { str[i++]=data%10+'0'; data=data/10; } for(j=0;j

      7. 從鍵盤上輸入一個字符串,轉(zhuǎn)為整數(shù)輸出

      #include #include int main() { //"123" char str[100]; int data=0; int i=0; printf("從鍵盤上輸入字符串:"); scanf("%s",str); while(str[i]!='\0') { data*=10;//data=0 data=10 data=120 data+=str[i]-'0';//data=1 data=12 data=123 i++; } printf("data=%d\n",data); return 0; }

      8. 字符串刪除

      從鍵盤上錄入一個字符串,刪除字符串里指定的單詞,輸出結(jié)果。

      比如:原字符串 ”akjbcds123dfjvbf123fdvbfd123”

      刪除單詞:“123”

      輸出的結(jié)果:”akjbcdsdfjvbffdvbfd”

      #include #include int main() { char str1[100]; char str2[100]; int i=0,j=0; int str2_len=0; /*1. 錄入數(shù)據(jù)*/ printf("輸入源字符串:"); scanf("%s",str1); printf("輸入要刪除的字符串:"); scanf("%s",str2); /*2. 計算要刪除字符串的長度*/ str2_len=strlen(str2); /*3. 查找字符串*/ for(i=0;str1[i]!='\0';i++) { //比較字符串 for(j=0;str2[j]!='\0';j++) { if(str1[i+j]!=str2[j])break; } if(str2[j]=='\0') { //4. 刪除字符串---后面向前面覆蓋 for(j=i;str1[j]!='\0';j++) { str1[j]=str1[j+str2_len]; } str1[j]='\0'; i--; } } //5. 輸出結(jié)果 printf("str1=%s\n",str1); return 0; }

      9. 字符串插入

      從鍵盤上錄入一個字符串,從指定位置插入一個字符串,再輸出結(jié)果。

      比如:原字符串“1234567890”

      (1). 從指定位置插入新的單詞。 比如 從第2個下標插入一個“ABC”字符串。

      結(jié)果: “123ABC4567890”

      #include #include int main() { char str1[100]; char str2[100]; int addr=0; int str1_len; int str2_len; int i; /*1. 錄入數(shù)據(jù)*/ printf("錄入源字符串:"); scanf("%s",str1); printf("錄入要插入的字符串:"); scanf("%s",str2); printf("輸入要插入的下標位置:"); scanf("%d",&addr); str1_len=strlen(str1); //3 str2_len=strlen(str2); //2 /*2. 完成插入*/ //完成數(shù)據(jù)移動 for(i=str1_len-1;i>=addr;i--) { str1[i+str2_len]=str1[i]; } //數(shù)據(jù)替換 for(i=0;i

      10. 字符串替換

      從鍵盤上錄入一個字符串,將指定單詞替換成想要的單詞。

      比如:原字符串“123jfvfdj123dkfvbfdvdf”

      想要將“123”替換成“888”或者“8888”或者“88”

      #include #include int main() { char str1[100]; char str2[100]; char str3[100]; int str1_len=0; int str2_len=0; int str3_len=0; int i,j; int cnt=0; /*1.準備數(shù)據(jù)*/ printf("輸入源字符串:"); scanf("%s",str1); printf("輸入查找的字符串:"); scanf("%s",str2); printf("輸入替換的字符串:"); scanf("%s",str3); /*2. 計算長度*/ str1_len=strlen(str1); str2_len=strlen(str2); str3_len=strlen(str3); /*3. 字符串替換*/ for(i=0;istr3_len) { cnt=str2_len-str3_len; //差值 //完成數(shù)據(jù)向前移動--覆蓋 for(j=i+str2_len-cnt;j=i+str2_len;j--) { str1[j+cnt]=str1[j]; } str1[str1_len+cnt]='\0'; } //替換 for(j=0;j

      C 語言 數(shù)據(jù)結(jié)構(gòu)

      版權(quán)聲明:本文內(nèi)容由網(wǎng)絡用戶投稿,版權(quán)歸原作者所有,本站不擁有其著作權(quán),亦不承擔相應法律責任。如果您發(fā)現(xiàn)本站中有涉嫌抄襲或描述失實的內(nèi)容,請聯(lián)系我們jiasou666@gmail.com 處理,核實后本網(wǎng)站將在24小時內(nèi)刪除侵權(quán)內(nèi)容。

      上一篇:重要的技術(shù)創(chuàng)新節(jié)點容易發(fā)生在什么地方?
      下一篇:程序員需要了解的硬核知識之操作系統(tǒng)入門
      相關(guān)文章
      亚洲国产成人AV在线播放| 亚洲狠狠婷婷综合久久久久| 亚洲成A∨人片在线观看不卡| 亚洲AV无码乱码在线观看| 亚洲午夜无码毛片av久久京东热| 亚洲一区二区久久| 国产婷婷综合丁香亚洲欧洲| 亚洲综合激情九月婷婷| 亚洲精品电影天堂网| 亚洲日韩区在线电影| 亚洲综合日韩中文字幕v在线 | 亚洲人成7777影视在线观看| 亚洲欧洲国产视频| 亚洲最大视频网站| 亚洲三级中文字幕| 一本色道久久综合亚洲精品蜜桃冫| 亚洲娇小性xxxx色| 久久综合久久综合亚洲| 亚洲欧美黑人猛交群| 亚洲AV无码一区二区乱子仑| 亚洲日韩精品A∨片无码加勒比| 亚洲色一区二区三区四区| 久久久久亚洲精品无码网址色欲| 精品久久久久久久久亚洲偷窥女厕| 亚洲AV无码专区在线观看成人| 国产亚洲日韩在线a不卡| 国产精品亚洲精品日韩已方| 亚洲午夜久久久久久久久电影网 | 亚洲国产精品线观看不卡| 亚洲国产综合人成综合网站00| 亚洲AV成人噜噜无码网站| 亚洲色偷偷综合亚洲av78 | 亚洲国产精品特色大片观看完整版 | 亚洲国产成人综合| 精品亚洲456在线播放| 亚洲1区2区3区精华液| 亚洲人成网站18禁止一区| 亚洲尤码不卡AV麻豆| 久久亚洲精品成人AV| 亚洲一区电影在线观看| 亚洲国产成人精品无码区二本 |