字符串和字符数组基础知识点,笔记

本文介绍了C语言中字符串的基本概念,如字符串是由双引号包围的字符序列,以作为结束标志。文章讲解了如何定义和初始化字符数组,以及使用printf进行字符串输出。此外,还讨论了strlen函数来计算字符串长度,强调了的重要性。同时,提到了其他字符串处理函数,如gets、puts、strcat、strcpy和strcmp。
摘要由CSDN通过智能技术生成

字符串定义:由双引号引起来的一串字符称为字符串字面值,或者简称字符串。

注:字符串的结束标志是一个“\0”的转义字符。在计算字符串长度的时候“\0”是结束标志,不算做字符串内容。(结束标志非常重要)

输出时用printf("%s",...);

字符串就是一串字符(用双引号括起来的一串字符,例如:“abcdef”)

#include<stdio.h>
int main{
    //字符数组--存放字符串--数组是一组同类型的元素
    char arr[]="hello"//字符串结尾位置隐藏了\0
    printf("%s\n",arr);//结果为hello
    char arr1[]={'h','e','l','l','o'}
    printf("%s\n",arr1);
    //结果为hello????,因为没有\0这一个结束标志,导致输出完后还在输出乱码
    char arr1[]={'h','e','l','l','o','\0'}
    printf("%s\n",arr2);//结果为hello,因为有结束标志
    return 0;
}
//求字符串长度--strlen()
#include<stdio.h>
#include<string.h>//strlen函数需要用到这个头文件
int main(){
    int len=strlen("hello");//string length
    printf("%d\n",len);//结果为5,'\0'仅仅是结束标志不算在字符串长度之中
    char arr1[]={'h','e','l','l','o'};
    printf("%d\n",strlen(arr1));//结果为随机值,因为无结束标志“\0”
    char arr2[]={'h','e','l','l','o','\0'};
    printf("%d\n",strlen(arr2));//结果为5,因为有结束标志“\0”
}

字符数组

用来存放字符数据的数组成为字符数组。

字符数组的定义和引用
#include<stdio.h>
int main(){
    char a[5];//定义一个一维字符数组
    char b[2][2];//定义一个二维字符数组
    char c[3][3][3];//定义一个三维字符数组
}
字符数组的输入输出
  1. 逐个字符输入输出,用格式符%c

#include<stdio.h>
int main(){
    for(i=0;i<5;i++){//i++是自增一的意思
        scanf("%c",&c[i])//逐个输入一维字符数组c的每个数组元素
    }
    for(i=0;i<5;i++){
        printf("%c",c[i]);//逐个输出一维字符数组c的每个数组元素
    }
}
  1. 将整个字符串一次输入或输出,用格式符%s

#include<stdio.h>
int main(){
    char s[10];//定义一个一维字符数组
    scanf("%s",s);//字符串数组中,数组名s即代表数组元素首地址,所以可以不加&符,一维数组可以不写成s[]
    printf("%s",s);
}
//如果是二维数组则输入是scanf("%s",s[i]);
//从键盘上输入一个字符串时,一般用空格作为结束标志
//如果一个字符数组中包含一个或多个‘\0’,则遇到第一个‘\0’时就会结束输出过程
字符串处理函数

使用字符串处理函数时最好写上头文件#include和#include

  1. 字符串输入函数”gets()“和输出函数”puts()“

  • 输入函数 char gets(字符数组名)

#include<stdio.h>
#include<string.h>
int main(){
    gets(s);
}
  • 输出函数 int puts(字符数组名)或int puts(字符串常量)

#include<stdio.h>
#include<string.h>
int main(){
    char s[]="abc";
    puts(s);
}

注:用puts()和gets()函数每次只能输入或输出一个字符串

  1. 字符串连接函数stacat()

作用:把字符数组2中的字符串连接到字符数组1中的字符串后面,并删去字符数组1后面的结束标志”\0“。字符数组必须足够大,方便容纳字符数组2。

形式:char strcat(字符数组1,字符数组2或字符串常量)

#include<stdio.h>
#include<string.h>
int main(){
    char s1[30]="abc";
    char s2[]={"defg"};
    printf("%s",strcat(s1,s2));//结果为abcdefg
    return 0;
}
  1. 字符串复制函数strcpy()

作用:把字符数组2中的字符串复制到字符数组1中,结束标志”\0“也一起复制。字符数组1的长度不应小于字符数组2的长度。

形式: char strcpy(字符数组1,字符数组2或字符串2)

#include<stdio.h>
#include<string.h>
int main(){
    char s1[10],s2[]={"abc"};
    strcpy(s1,s2);
    printf("%s",s1);//结果为abc
    return 0;
}
  1. 字符串比较函数strcmp()

作用:按照ASCII码值的大小逐个比较两个字符串的对应字符,直到值不想等或遇到“\0”时结束比较

#include<stdio.h>
#include<string.h>
int main(){
    char str1[30]="abcde";
    char str2[30]="abcdef";
    if(strcmp(str1,str2)==0) printf("yes");
    return 0;
}
  1. 求字符串长度函数strlen()

作用:计算出字符串的长度,不含字符串结束标志”\0“,并将该长度作为函数值返回

#include<stdio.h>
#include<string.h>
int main(){
   char s[10]={"java"};
   printf("%d",strlen(str)); 
   return 0;
}
  1. 字符串小写转换函数strlwr(),大写转换函数strupr()

  • strlwr(),将字符串中的大写字母转换成小写字母,小写字母与其他字母不变。

  • strupr(),将字符串中的小写字母转换成大写字母,大写字母与其他字母不变。

#include<stdio.h>
#include<string.h>
int main(){
  printf("%s",strlwr("ASP"));
  printf("%s",strupr("asp"));
  return 0;
}


初学C语言,如果文章有错误可以在评论区指正。

  • 4
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值