C语言学习笔记:字符串

本文介绍了C语言中字符串的定义和初始化,包括三种声明方式,并通过示例展示了字符串的输出。还提到了字符串函数如strcpy、strcat、strlen等的作用,以及字符串初始化时需要注意末尾的空字符。
摘要由CSDN通过智能技术生成

✨博文作者:烟雨孤舟
💖 喜欢的可以 点赞 收藏 关注哦~~

✍️ 作者简介: 一个热爱大数据的学习者

✍️ 笔记简介:作为大数据爱好者,以下是个人总结的学习笔记,如有错误,请多多指教!

目录

字符串定义

字符串初始化

 字符串函数


字符串定义

在c中没有专门的字符串变量,通常用一个字符数组来存放一个字符串,并且字符串总是以空字符'\0'作为字符串的结束语。

字符串的本质是以 \0 结束的字符数组。

字符串的三中表达方式(结果相同):
char a[]={'m','a','p','\0'};//字符数组
char a[]={"map"};//字符串数组
char a[]="map";//字符串

0123
map\0
#include <stdio.h>
int main ()
{
   char a[]="RUNOOB";
   char site[7] = {'R', 'U', 'N', 'O', 'O', 'B', '\0'};
   printf("上下字符串结果相同%s\n", site);
   printf("上下字符串结果相同%s\n", a);
   return 0;
}
输出结果:
	//上下字符串结果相同RUNOOB
	//上下字符串结果相同RUNOOB

字符串的格式符 %s
字符串输入格式:
    char a[]="map";
    printf("%s",a);
字符数组的输入:scanf("%s",数组名);
字符串数组的输入:
    字符数组输入无需加取地址符&,数组名表示数组的首地址
    当使用scanf函数输入字符串时,不能含有空格,负责以空格作为串的结束符
字符串输出函数puts
    格式:puts(字符数组名称);
    char a[]="hello";
    puts(a);
字符串输入函数gets
    格式: gets(字符数组名);
    char a[6]
    gets(a);

字符串初始化

//字符串的本质是以 \0 结束的字符数组。
字符串的字面量是常量,比如"hello"
数组形式:
char hi[] = {'h','e','l','l','o','\0'};
直接赋首地址:
char hi[6] ="hello" ;
省略长度:
char hi[] = "hello";
char hi[] = {"hello"};
字符指针:(注意指针不能直接赋给数组)
char *hi = "hello";
sizeof() 计算字符串的长度,包含末尾的 '\0'
strlen() 计算字符串的长度,不包含字符串末尾的 '\0'

 字符串函数

strcpy(s1,s2);    复制字符串 s2 到字符串 s1。
strcat(s1,s2);    连接字符串 s2 到字符串 s1 的末尾。
strlen(s1);   返回字符串 s1 的长度。
strcmp(s1,s2);如果s1<=s2则返回小于 0;如果 s1>s2 则返回大于 0。
strchr(s1,ch);返回一个指针,指向字符串s1中字符ch的第一次出现的位置。
strstr(s1,s2);返回一个指针,指向字符串s1中字符串s2的第一次出现的位置
函数英文全称
strcmp: string compare 
strcat: string catenate 
strcpy: string copy 
strlen: string length 
strlwr: string lowercase 
strupr: string upercase

初始化字符串,如果没有在字符数组最后增加 \0,输出字符串时会报错
//错误方式
char greeting[5] = { 'H', 'e', 'l', 'l', 'o' };
//正确方式
char greeting[5] = { 'H', 'e', 'l', 'l', 'o','\0'};
char greeting[] ="hello";
//在使用不定长数组初始化字符串时默认结尾为 \0
'a' 表示是一个字符,"a" 表示一个字符串相当于 'a'+'\0';
'' 里面只能放一个字符;
"" 里面表示是字符串系统自动会在串末尾补一个 0。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

烟雨孤舟

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值