0
  • 聊天消息
  • 系统消息
  • 评论与回复
登录后你可以
  • 下载海量资料
  • 学习在线课程
  • 观看技术视频
  • 写文章/发帖/加入社区
会员中心
创作中心

完善资料让更多小伙伴认识你,还能领取20积分哦,立即完善>

3天内不再提示

C语言-字符串处理

DS小龙哥-嵌入式技术 来源:DS小龙哥-嵌入式技术 作者:DS小龙哥-嵌入式技 2022-08-14 10:05 次阅读

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. 字符串替换

从键盘上录入一个字符串,将指定单词替换成想要的单词。

比如:原字符串“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

    文章

    7602

    浏览量

    136357
  • 字符串
    +关注

    关注

    1

    文章

    578

    浏览量

    20493
  • 数组
    +关注

    关注

    1

    文章

    416

    浏览量

    25921
收藏 人收藏

    评论

    相关推荐

    C++字符串string

    string是C++编程语言中的字符串。在C++中字符串处理可以使用
    的头像 发表于 07-10 00:26 1239次阅读
    <b class='flag-5'>C</b>++<b class='flag-5'>字符串</b>string

    Simple Dynamic Strings (简称 SDS) 是什么

    语言字符串处理的能力。设计 SDS 原本是为了满足设计者自身日常的 C 编程,后来又被转移到 Redis 中,在 Redis 中被广泛使用并对其进行了修改以适合于高性能操作。现在,它
    发表于 07-16 06:45

    快捷的操作AT指令和编写自己AT指令的办法分享

    分享,如有问题还望指出修正,谢谢大家!一、调两个头文件#include//单片机printf重定义头文件#include//C语言字符串处理头文件二、重定义串口 “printf”//串
    发表于 01-21 09:40

    C语言教程之字符串替换

    C语言教程之字符串替换,很好的C语言资料,快来学习吧。
    发表于 04-25 15:49 0次下载

    C语言教程之回文字符串

    C语言教程之回文字符串,很好的C语言资料,快来学习吧。
    发表于 04-25 15:49 0次下载

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

    C语言教程之字符串加密和解密,很好的C语言资料,快来学习吧。
    发表于 04-25 15:49 0次下载

    C语言字符串转数字实现方法

    C/C++语言中没有专门的字符串变量,通常用字符数组来存放字符串
    发表于 11-14 17:50 1.3w次阅读

    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>函数

    C语言字符串匹配和数据提取源码

    C语言字符串匹配与数据提取源码
    的头像 发表于 02-27 15:42 2367次阅读
    <b class='flag-5'>C</b><b class='flag-5'>语言</b><b class='flag-5'>字符串</b>匹配和数据提取源码

    C语言编程字符串函数汇总资源下载

    C语言编程字符串函数汇总资源下载
    发表于 04-15 16:18 9次下载
    <b class='flag-5'>C</b><b class='flag-5'>语言</b>编程<b class='flag-5'>字符串</b>函数汇总资源下载

    C语言总结_字符串全方位练习

    C语言字符串全方位练习,涉及知识点:字符串解析、大小写判断、字符串插入、字符串删除、
    的头像 发表于 08-14 09:41 1458次阅读

    C语言字符串的引用方式

    C语言程序中,字符串是存放在字符数组中的。 2. 用字符数组存放一个字符串,可以通过数组名和
    的头像 发表于 03-10 14:57 1864次阅读

    C语言定义字符串的几种方法

    C语言中定义字符串有哪些方法?
    的头像 发表于 03-31 09:41 3513次阅读

    c语言字符串定义

    C语言是一种强大而广泛使用的编程语言字符串是其中一个非常重要的概念。在C语言中,
    的头像 发表于 11-24 10:02 1866次阅读

    C语言字符串编译函数介绍

    C语言中,字符串实际上是使用null字符O'终止的一维字符数组。因此,一个以null结尾的
    的头像 发表于 03-07 16:18 486次阅读
    <b class='flag-5'>C</b><b class='flag-5'>语言</b><b class='flag-5'>字符串</b>编译函数介绍