C语言学习笔记(字符串和字符串函数)

九.字符串

单个字符的定义

char i = 'a';

单个字符创建后为常量

字符串

C语言中没有字符串这种数据类型,可以通过char型数组来替代;数字0(和字符‘\0’等价)结尾(0不属于字符串)的char数组就是一个字符串,但如果char型数组没有以数字0结尾,那么就只是普通字符数组 。注意: C语言中,字符串一定是一个char型数组,但char型数组未必是字符串。

char ch[]="abc";
char ch[] = { 'c', 'o', 'p', 'r', 'o', 'g', '\0' };//必须立刻赋值
char ch[10]="abc";//有初始的指定长度;

其中定义的数组的元素数要比实际赋值的数量多一,用于存放\0位置

字符串常变量

  • "Hello"就是一个字符串常量,编译器会把他变成一个字符数组放在某处,数组长度为6。两个相邻的字符串会自动连接起来。
  • char *s = "Hello"    s是一个指针,初始化指向一个字符串常量。这个常量所在的地方固定,所以s实际上是const char *s 
  • 如果需要修改字符串 应该用数组  char  s[ ] = "Hello" ;

指针还是数组?

构造 -> 指针

处理 -> 数组

字符串输入输出

1.scanf和printf

  使用”%s”参数(单个字符用”%c”)

char str [8];
scanf("%s",str);
  • scanf读一个字符串 (空格或回车为止,并且自动在串后面加上结束标志'\0')
  • scanf是不安全的,因为不知道要读的长度
  • 可以用scanf("%7s",str); 表示最多读多少个 
  • 输出%可以用printf("%%");

2.getchar和putchar

getchar函数将输入的第一个字符作为函数的返回值,通常使用这个函数时,将函数的返回值赋予一个字符变量或者整型变量。

#include <stdio.h> 
main()
{	char ch;
	ch = getchar();
	printf("%c %d\n",ch,ch);
	printf("%c %d\n",ch-32,ch-32);
	return 0;
}

putchar(ch)函数是向标准输出设备(屏幕)上输出一个字符的C语言标准函数。ch可以是变量、常量,转义字符或表达式。数据类型可以是字符型或整型。当ch是整型数据时,输出的是与其相对应的ASCII码值。

字符串函数

 都在头文件string.h中

(3条消息) C语言——字符串函数(必收藏)_小李爱吃鱼的博客-CSDN博客_c语言字符串函数https://blog.csdn.net/weixin_59174190/article/details/124190537?ops_request_misc=&request_id=&biz_id=102&utm_term=C%E8%AF%AD%E8%A8%80%E5%AD%97%E7%AC%A6%E4%B8%B2%E5%87%BD%E6%95%B0&utm_medium=distribute.pc_search_result.none-task-blog-2~all~sobaiduweb~default-1-124190537.nonecase&spm=1018.2226.3001.4187

1.计算字符串长度——strlen()

 计算数组中‘\0’之前的字符的长度,它的返回值是无符号整形(可以强制类型转换)

 char str[] = "China";
 printf("%d",strlen(str));

2.字符串赋值——strcpy()

  strcpy(str1,str2):C语言中字符串赋值不能直接使用 ’=’ 进行赋值。将s2赋给s1

    char str1[50];
    char str2[10] = "Chinese!";
    strcpy(str1,str2);
    printf("%s\n",str1);

3.字符串拼接——strcat()

将str2字符串拼接到str1字符串后

    char str1[50] = "I am";
    char str2[10] = " Chinese!";
    strcat(str1,str2);
    printf("%s\n",str1);

4.strcmp

比较两个字符串中对应位置上的字符大小,直到找到不同或'\0'。当str1>str2时,返回>0的数;当str1<str2时,返回<0的数;当str1=str2时,返回0。

  • 0
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值