(文末送书)蓝桥杯备战——数据结构字符串
字符串基本概念
1.字符串是由若干字符组成的序列。
例如:“love”,“strong”,“1397095”,"%dn"等,都是合法的字符串。
2.用双引号引起来的就是字符串,字符串由字符组成
3.字符串使用%s格式化输出
# include"stdio.h"
# include"string.h"
main()
{
char str[11],str1[100];
char str2[]={"and strong"};
scanf ("%s",str);
printf ("%sn",str);
gets (str1); //gets也可以输入一个字符串
puts (str1); //puts可以输出一个字符串
printf ("%sn",strcat(str1,str2)); //strcat(字符数组1,字符数组2),strcat函数连接
//两个字符数组中的子符串,字符串2链接到字符串1后面,结果放在字符数组1中。
strcpy(str,str1); //字符串拷贝函数strcpy
puts(str);
printf ("%dn",strcmp(str1,str2));//字符串比较函数strcmp
printf ("%dn",strcmp(str2,str1));
printf ("%dn",strlen(str1));// strlen求字符串长度
printf ("%dn",strupr(str1));// strlwr字符串转成大写
strncpy(str1,str2,4);//复制字符串2中前面4个字符到数组1中,
//取代str1中前4个字符。
puts(str);
}
4.字符串以结尾,没有就不是字符串
5.只要是用双引号括起来的都是字符串
6.字符串的本质就是数组,一个一维数组对应一个字符串。
例如:
main()
{
char str[11]= "Prosperous";
printf("%sn",str);
}
7.在C语言中,字符串由一个结束标志,即ASCII码为0的字符(空白符)。C语言在处理字符串时从指定位置开始遇到的一个空白符为止。因此,字符数组作为字符串处理时,字符数组在大小上一定要比字符串的长度最少多1。上例中"Prosperous"
有10个字符,定义str时长度为11,比10多了1个。其值如下:
8.最后一个元素的值是’’,是字符串的技术标志。输入时系统自动加入,输出时不显示。
字符串操作
- 字符串定义
在普通的字符数组后面加一个就成了字符串
char buff[]="我是一个字符串";
char a[]="123456789";
char b[]="abcdefg";
char c[]={'a','b','c',''};
- 字符串大小写转换
函数执行的功能就是将你输入的字符串全部转换成小写和全部转换成大写
#include <stdio.h>
#include <string.h>
#include <stdlib.h>
void func(char *str,int flag);
int main()
{
char buff[100];
printf("从键盘上输入字符串:");
scanf("%s",buff);
printf("源字符串:%sn",buff);
func(buff,0);
printf("大写转换小写:%sn",buff);
func(buff,1);
printf("小写转大写:%sn",buff);
return 0;
}
//函数功能: 大写小写转换
//flag=0表示大写转换小写 =1表示小写转大写
void func(char *str,int flag)
{
int data;
while(*str!='')
{
if(flag)
{
if(*str>='a'&& *str<='z') //小写
{
*str=*str-32;
}
}
else
{
if(*str>='A'&& *str<='Z') //小写
{
*str=*str+32;
}
}
str++;
}
}
- 字符串删除
从键盘上录入一个字符串,删除字符串里指定的单词,输出结果。
比如:原字符串”abcdef123abcdef123abcdef123”
删除单词:“123”
输出的结果:”abcdefabcdefabcdef”
#include <stdio.h>
#include <string.h>
int main()
{
char str1[100];
char str2[100];
int i=0,j=0;
int str2_len=0;
/*1. 录入数据*/
printf("输入源字符串:");
scanf("%s",str1);
printf("输入要删除的字符串:");
scanf("%s",str2);
/*2. 计算要删除字符串的长度*/
str2_len=strlen(str2);
/*3. 查找字符串*/
for(i=0;str1[i]!='';i++)
{
//比较字符串
for(j=0;str2[j]!='';j++)
{
if(str1[i+j]!=str2[j])break;
}
if(str2[j]=='')
{
//4. 删除字符串---后面向前面覆盖
for(j=i;str1[j]!='';j++)
{
str1[j]=str1[j+str2_len];
}
str1[j]='';
i--;
}
}
//5. 输出结果
printf("str1=%sn",str1);
return 0;
}
- 字符串插入
从键盘上录入一个字符串,从指定位置插入一个字符串,再输出结果。
比如:原字符串“123456789”
从指定位置插入新的单词。 比如从第5个下标插入一个“abc”字符串。
结果: “123abc456789”
#include <stdio.h>
#include <string.h>
int main()
{
char str1[100];
char str2[100];
int addr=0;
int str1_len;
int str2_len;
int i;
/*1. 录入数据*/
printf("录入源字符串:");
scanf("%s",str1);
printf("录入要插入的字符串:");
scanf("%s",str2);
printf("输入要插入的下标位置:");
scanf("%d",&addr);
str1_len=strlen(str1); //3
str2_len=strlen(str2); //2
/*2. 完成插入*/
//完成数据移动
for(i=str1_len-1;i>=addr;i--)
{
str1[i+str2_len]=str1[i];
}
//数据替换
for(i=0;i<str2_len;i++)
{
str1[i+addr]=str2[i];
}
str1[str1_len+str2_len]='';
/*3. 输出数据*/
printf("str1=%sn",str1);
return 0;
}
送书福利
最近几年Vue越来越火热,BAT等互联网大厂都在前端职位招聘中加入了精通Vue.js框架的要求,就连饿了么公司的技术团队也专门为Vue.js设计了UI框架体系。本书的实操案例都是笔者独立完成的实际项目,有着对标市场实际需求的参考价值,同时本书提供的框架模式可以让读者应用于其他项目,从而提高开发效率,减少开发弯路。
我自己也购买了这本书,感觉很不错的
本书从Vue.js框架技术的基础概念出发,逐步深入Vue.js进阶实战,并在最后配合一个网站项目和一个后台系统开发实战案例,重点介绍了使用Vue.js+axios+ElementUI+wangEditor进行前端开发和使用组件进行Vue单页面网页复用,让读者不但可以系统地学习Vue.js前端开发框架的相关知识,而且还能对业务逻辑的分析思路、实际应用开发有更为深入的理解。
没中奖的小伙伴,大家可以自行购买:
京东自营购买链接
https://item.jd.com/13504160.html
当当自营购买链接
http://product.dangdang.com/29317605.html
注意事项:
1.抽奖方式:评论点赞量最高的(快让你小伙伴来点赞吧)
2.开奖时间:2022.1.7,本周五
3.中奖前,记得添加微信:Kcyu68,大家一定要关注开奖时间,记得领奖