1. 前言
字符串在C語(yǔ)言里使用非常多,因?yàn)楹芏鄶?shù)據(jù)處理都是文本,也就是字符串,特別是設(shè)備交互、web網(wǎng)頁(yè)交互返回的幾乎都是文本數(shù)據(jù)。
	字符串本身屬于字符數(shù)組、只不過(guò)和字符數(shù)組區(qū)別是,字符串結(jié)尾有’\0’。 字符串因?yàn)橐?guī)定結(jié)尾有'\0',在計(jì)算長(zhǎng)度、拷貝、查找、拼接操作都很方便。
2. 字符串的定義
char buff[]="我是一個(gè)字符串";
char a[]="1234567890";
char b[]="abc";
char c[]={'a','b','c','\0'};
	在普通的字符數(shù)組結(jié)尾加一個(gè) \0 就變成了字符串。
3. 處理字符串里字母大小寫
將字符串里所有大寫字母全部換成小寫字母。或者小寫字母全部換成大寫字母??梢酝ㄟ^(guò)形參進(jìn)行區(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!='\0')
	{
		if(flag)
		{
			if(*str>='a'&& *str<='z') //小寫
			{
				*str=*str-32;
			}
		}
		else
		{
			if(*str>='A'&& *str<='Z') //小寫
			{
				*str=*str+32;
			}
		}
		str++;
	}
}
4. 從鍵盤上錄入2個(gè)字符串,判斷是否相等
#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;
}
5. 從鍵盤上錄入一個(gè)字符串,按照小到大的順序排序
#include 
#include 
int main()
{
	char str1[100];
	int len=0;
	int i,j;
	int tmp;
	printf("輸入要排序的字符串:");
	scanf("%s",str1);
	len=strlen(str1);
	//開(kāi)始排序
	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. 從鍵盤上輸入一個(gè)整數(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;j++)>
	10. 字符串替換
10. 字符串替換
	從鍵盤上錄入一個(gè)字符串,將指定單詞替換成想要的單詞。
	比如:原字符串“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.準(zhǔn)備數(shù)據(jù)*/
	printf("輸入源字符串:");
	scanf("%s",str1);
	printf("輸入查找的字符串:");
	scanf("%s",str2);
	printf("輸入替換的字符串:");
	scanf("%s",str3);
	/*2. 計(jì)算長(zhǎng)度*/
	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ù)向前移動(dòng)--覆蓋
				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語(yǔ)言
                                +關(guān)注
關(guān)注
183文章
7636瀏覽量
144294 - 
                                字符串
                                +關(guān)注
關(guān)注
1文章
594瀏覽量
22983 - 
                                數(shù)組
                                +關(guān)注
關(guān)注
1文章
420瀏覽量
27069 
發(fā)布評(píng)論請(qǐng)先 登錄
Simple Dynamic Strings (簡(jiǎn)稱 SDS) 是什么
快捷的操作AT指令和編寫自己AT指令的辦法分享
C語(yǔ)言字符串轉(zhuǎn)數(shù)字實(shí)現(xiàn)方法
C語(yǔ)言的字符串處理函數(shù)
    
          
        
        
C語(yǔ)言-字符串處理
                
 
    
    
    
    
           
            
            
                
            
評(píng)論