1. 前言
字符串在C語言里使用非常多,因為很多數據處理都是文本,也就是字符串,特別是設備交互、web網頁交互返回的幾乎都是文本數據。
字符串本身屬于字符數組、只不過和字符數組區別是,字符串結尾有’\0’。 字符串因為規定結尾有'\0'
,在計算長度、拷貝、查找、拼接操作都很方便。
2. 字符串的定義
char buff[]="我是一個字符串";
char a[]="1234567890";
char b[]="abc";
char c[]={'a','b','c','\0'};
在普通的字符數組結尾加一個 \0
就變成了字符串。
3. 處理字符串里字母大小寫
將字符串里所有大寫字母全部換成小寫字母。或者小寫字母全部換成大寫字母。可以通過形參進行區分。
#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("大寫轉換小寫:%s\n",buff);
func(buff,1);
printf("小寫轉大寫:%s\n",buff);
return 0;
}
//函數功能: 大寫小寫轉換
//flag=0表示大寫轉換小寫 =1表示小寫轉大寫
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++;
}
}
4. 從鍵盤上錄入2個字符串,判斷是否相等
#include
int main()
{
char str1[100];
char str2[100];
int i=0;
/*1. 錄入數據*/
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;
}
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;
}
;i++)>
6. 從鍵盤上輸入一個整數:將整數轉為字符串輸出
比如: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("從鍵盤上輸入整數:");
scanf("%d",&data);
// 123 -->'1' '2' '3'
while(data)
{
str[i++]=data%10+'0';
data=data/10;
}
for(j=0;j;j++)>
10. 字符串替換
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.準備數據*/
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; //差值
//完成數據向前移動--覆蓋
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;i++)>
;j++)>
聲明:本文內容及配圖由入駐作者撰寫或者入駐合作網站授權轉載。文章觀點僅代表作者本人,不代表電子發燒友網立場。文章及其配圖僅供工程師學習之用,如有內容侵權或者其他違規問題,請聯系本站處理。
舉報投訴
-
C語言
+關注
關注
180文章
7615瀏覽量
137842 -
字符串
+關注
關注
1文章
585瀏覽量
20612 -
數組
+關注
關注
1文章
417瀏覽量
26034
發布評論請先 登錄
相關推薦
Simple Dynamic Strings (簡稱 SDS) 是什么
語言字符串處理的能力。設計 SDS 原本是為了滿足設計者自身日常的 C 編程,后來又被轉移到 Redis 中,在 Redis 中被廣泛使用并對其進行了修改以適合于高性能操作。現在,它
發表于 07-16 06:45
快捷的操作AT指令和編寫自己AT指令的辦法分享
分享,如有問題還望指出修正,謝謝大家!一、調兩個頭文件#include//單片機printf重定義頭文件#include//C語言字符串處理頭文件二、重定義串口 “printf”//串
發表于 01-21 09:40
C語言的字符串處理函數
指針是神奇的,指向整型的指針int *p1,可以操作整型數組int a[];指向字符型的指針char *p2,可以操作字符數組(字符串)char str[];更靈活的是,在函數的傳遞中,指針、數組名在一定程度上可以互換。請編制函
發表于 07-24 17:37
?4次下載
![<b class='flag-5'>C</b><b class='flag-5'>語言</b>的<b class='flag-5'>字符串</b><b class='flag-5'>處理</b>函數](https://file.elecfans.com/web1/M00/9E/32/o4YBAF031XGAJX-cAAJGpGOq9NI528.png)
評論