0
  • 聊天消息
  • 系統(tǒng)消息
  • 評(píng)論與回復(fù)
登錄后你可以
  • 下載海量資料
  • 學(xué)習(xí)在線課程
  • 觀看技術(shù)視頻
  • 寫文章/發(fā)帖/加入社區(qū)
會(huì)員中心
創(chuàng)作中心

完善資料讓更多小伙伴認(rèn)識(shí)你,還能領(lǐng)取20積分哦,立即完善>

3天內(nèi)不再提示

C語言-字符串處理

DS小龍哥-嵌入式技術(shù) ? 來源:DS小龍哥-嵌入式技術(shù) ? 作者:DS小龍哥-嵌入式技 ? 2022-08-14 10:05 ? 次閱讀

1. 前言

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

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

2. 字符串的定義

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

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

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

將字符串里所有大寫字母全部換成小寫字母。或者小寫字母全部換成大寫字母??梢酝ㄟ^形參進(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);
	//開始排序
	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. 字符串替換

從鍵盤上錄入一個(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ì)算長度*/
	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++)>
聲明:本文內(nèi)容及配圖由入駐作者撰寫或者入駐合作網(wǎng)站授權(quán)轉(zhuǎn)載。文章觀點(diǎn)僅代表作者本人,不代表電子發(fā)燒友網(wǎng)立場。文章及其配圖僅供工程師學(xué)習(xí)之用,如有內(nèi)容侵權(quán)或者其他違規(guī)問題,請(qǐng)聯(lián)系本站處理。 舉報(bào)投訴
  • C語言
    +關(guān)注

    關(guān)注

    180

    文章

    7581

    瀏覽量

    135603
  • 字符串
    +關(guān)注

    關(guān)注

    1

    文章

    567

    瀏覽量

    20441
  • 數(shù)組
    +關(guān)注

    關(guān)注

    1

    文章

    412

    瀏覽量

    25862
收藏 人收藏

    評(píng)論

    相關(guān)推薦

    C++字符串string

    string是C++編程語言中的字符串。在C++中字符串處理可以使用
    的頭像 發(fā)表于 07-10 00:26 ?1148次閱讀
    <b class='flag-5'>C</b>++<b class='flag-5'>字符串</b>string

    Simple Dynamic Strings (簡稱 SDS) 是什么

    語言字符串處理的能力。設(shè)計(jì) SDS 原本是為了滿足設(shè)計(jì)者自身日常的 C 編程,后來又被轉(zhuǎn)移到 Redis 中,在 Redis 中被廣泛使用并對(duì)其進(jìn)行了修改以適合于高性能操作?,F(xiàn)在,它
    發(fā)表于 07-16 06:45

    快捷的操作AT指令和編寫自己AT指令的辦法分享

    分享,如有問題還望指出修正,謝謝大家!一、調(diào)兩個(gè)頭文件#include//單片機(jī)printf重定義頭文件#include//C語言字符串處理頭文件二、重定義串口 “printf”//串
    發(fā)表于 01-21 09:40

    C語言教程之字符串替換

    C語言教程之字符串替換,很好的C語言資料,快來學(xué)習(xí)吧。
    發(fā)表于 04-25 15:49 ?0次下載

    C語言教程之回文字符串

    C語言教程之回文字符串,很好的C語言資料,快來學(xué)習(xí)吧。
    發(fā)表于 04-25 15:49 ?0次下載

    C語言教程之字符串加密和解密

    C語言教程之字符串加密和解密,很好的C語言資料,快來學(xué)習(xí)吧。
    發(fā)表于 04-25 15:49 ?0次下載

    C語言字符串轉(zhuǎn)數(shù)字實(shí)現(xiàn)方法

    C/C++語言中沒有專門的字符串變量,通常用字符數(shù)組來存放字符串。
    發(fā)表于 11-14 17:50 ?1.3w次閱讀

    C語言字符串處理函數(shù)

    指針是神奇的,指向整型的指針int *p1,可以操作整型數(shù)組int a[];指向字符型的指針char *p2,可以操作字符數(shù)組(字符串)char str[];更靈活的是,在函數(shù)的傳遞中,指針、數(shù)組名在一定程度上可以互換。請(qǐng)編制函
    發(fā)表于 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>函數(shù)

    C語言字符串匹配和數(shù)據(jù)提取源碼

    C語言字符串匹配與數(shù)據(jù)提取源碼
    的頭像 發(fā)表于 02-27 15:42 ?2331次閱讀
    <b class='flag-5'>C</b><b class='flag-5'>語言</b><b class='flag-5'>字符串</b>匹配和數(shù)據(jù)提取源碼

    C語言編程字符串函數(shù)匯總資源下載

    C語言編程字符串函數(shù)匯總資源下載
    發(fā)表于 04-15 16:18 ?9次下載
    <b class='flag-5'>C</b><b class='flag-5'>語言</b>編程<b class='flag-5'>字符串</b>函數(shù)匯總資源下載

    C語言總結(jié)_字符串全方位練習(xí)

    C語言字符串全方位練習(xí),涉及知識(shí)點(diǎn):字符串解析、大小寫判斷、字符串插入、字符串刪除、
    的頭像 發(fā)表于 08-14 09:41 ?1408次閱讀

    C語言字符串的引用方式

    C語言程序中,字符串是存放在字符數(shù)組中的。 2. 用字符數(shù)組存放一個(gè)字符串,可以通過數(shù)組名和
    的頭像 發(fā)表于 03-10 14:57 ?1789次閱讀

    C語言定義字符串的幾種方法

    C語言中定義字符串有哪些方法?
    的頭像 發(fā)表于 03-31 09:41 ?3427次閱讀

    c語言字符串定義

    C語言是一種強(qiáng)大而廣泛使用的編程語言,字符串是其中一個(gè)非常重要的概念。在C語言中,
    的頭像 發(fā)表于 11-24 10:02 ?1660次閱讀

    C語言字符串編譯函數(shù)介紹

    C語言中,字符串實(shí)際上是使用null字符O'終止的一維字符數(shù)組。因此,一個(gè)以null結(jié)尾的
    的頭像 發(fā)表于 03-07 16:18 ?438次閱讀
    <b class='flag-5'>C</b><b class='flag-5'>語言</b><b class='flag-5'>字符串</b>編譯函數(shù)介紹