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文章
7588浏览量
135734 -
字符串
+关注
关注
1文章
567浏览量
20455 -
数组
+关注
关注
1文章
412浏览量
25873
发布评论请先 登录
相关推荐
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次下载
评论