轻松学习字符串

网友投稿 594 2022-05-28

轻松学习字符串

字符串基本概念

1.字符串是由若干字符组成的序列。

例如:“love”,“strong”,“1397095”,"%d\n"等,都是合法的字符串。

2.用双引号引起来的就是字符串,字符串由字符组成

3.字符串使用%s格式化输出

# include"stdio.h" # include"string.h" main() { char str[11],str1[100]; char str2[]={"and strong"}; scanf ("%s",str); printf ("%s\n",str); gets (str1); //gets也可以输入一个字符串 puts (str1); //puts可以输出一个字符串 printf ("%s\n",strcat(str1,str2)); //strcat(字符数组1,字符数组2),strcat函数连接 //两个字符数组中的子符串,字符串2链接到字符串1后面,结果放在字符数组1中。 strcpy(str,str1); //字符串拷贝函数strcpy puts(str); printf ("%d\n",strcmp(str1,str2));//字符串比较函数strcmp printf ("%d\n",strcmp(str2,str1)); printf ("%d\n",strlen(str1));// strlen求字符串长度 printf ("%d\n",strupr(str1));// strlwr字符串转成大写 strncpy(str1,str2,4);//复制字符串2中前面4个字符到数组1中, //取代str1中前4个字符。 puts(str); }

4.字符串以\0结尾,没有\0就不是字符串

5.只要是用双引号括起来的都是字符串

6.字符串的本质就是数组,一个一维数组对应一个字符串。

例如:

main() { char str[11]= "Prosperous"; printf("%s\n",str); }

7.在C语言中,字符串由一个结束标志,即ASCII码为0的字符(空白符)。C语言在处理字符串时从指定位置开始遇到的一个空白符为止。因此,字符数组作为字符串处理时,字符数组在大小上一定要比字符串的长度最少多1。上例中"Prosperous"有10个字符,定义str时长度为11,比10多了1个。其值如下:

8.最后一个元素的值是’\0’,是字符串的技术标志。输入时系统自动加入,输出时不显示。

字符串操作

字符串定义

在普通的字符数组后面加一个\0就成了字符串

char buff[]="我是一个字符串"; char a[]="123456789"; char b[]="abcdefg"; char c[]={'a','b','c','\0'};

字符串大小写转换

函数执行的功能就是将你输入的字符串全部转换成小写和全部转换成大写

#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++; } }

字符串删除

从键盘上录入一个字符串,删除字符串里指定的单词,输出结果。

比如:原字符串 ”abcdef123abcdef123abcdef123”

删除单词:“123”

输出的结果:”abcdefabcdefabcdef”

#include #include 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]!='\0';i++) { //比较字符串 for(j=0;str2[j]!='\0';j++) { if(str1[i+j]!=str2[j])break; } if(str2[j]=='\0') { //4. 删除字符串---后面向前面覆盖 for(j=i;str1[j]!='\0';j++) { str1[j]=str1[j+str2_len]; } str1[j]='\0'; i--; } } //5. 输出结果 printf("str1=%s\n",str1); return 0; }

字符串插入

从键盘上录入一个字符串,从指定位置插入一个字符串,再输出结果。

比如:原字符串“123456789”

从指定位置插入新的单词。 比如从第5个下标插入一个“abc”字符串。

结果: “123abc456789”

#include #include 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

数据结构

版权声明:本文内容由网络用户投稿,版权归原作者所有,本站不拥有其著作权,亦不承担相应法律责任。如果您发现本站中有涉嫌抄袭或描述失实的内容,请联系我们jiasou666@gmail.com 处理,核实后本网站将在24小时内删除侵权内容。

上一篇:Oracle一键安装脚本ReadMe文档
下一篇:Roach备份恢复GaussDB DWS
相关文章