九.字符串

单个字符的定义

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。

C语言学习笔记(字符串和字符串函数)相关推荐

  1. C语言学习笔记(8)函数

    C语言学习笔记(8)函数 函数 函数主要是用于将解决复杂的编程问题分解为数个可以分开进行解决的小问题,通过函数分装,最后在拼连在一起.有利于多人协作开发. 函数同样需要先声明后调用,声明符号为 voi ...

  2. 翁恺老师C语言学习笔记(七)函数

    题目:求出1-10.20-30.35-45的三个和 #include<stdio.h>int main() {int i;int sum;for(i=1,sum=0;i<10;i++ ...

  3. C语言学习笔记---C库排序函数qsort()

      在处理数据的时候,由于排序方法会经常用到,所以C语言的库函数里面自带了快速排序的函数qsort(),对大型数据而言,"快速排序"方法是最有效的排序方法之一.它是把数组不断的分成 ...

  4. C语言学习笔记---文件操作 fopen()函数 和 fclose()函数

    fopen()函数   在C语言中fopen()函数用来打开文件.该函数声明在stdio.h中.它的第一个参数是待打开文件的名称,更确切的说是一个包含文件名的字符串地址.第二个参数是一个字符串,指定待 ...

  5. c++ 一个函数包括多个返回值判断_go语言学习笔记(10)-函数、包的使用

    跳转控制语句-continue 1:continue语句用于结束本次循环,继续执行下一次循环. 2:continue语句出现在多层嵌套的循环语句体中时,可以通过标签指明要跳过的是哪一层循环,这个和前面 ...

  6. C语言学习笔记(3)函数

    函数,是C语言中模块化程序设计的最小单位,是模块化程序设计的基石. 函数返回值若缺省,默认为int型. 不需要返回值,定义为无类型void,写return; 函数不能嵌套定义 函数调用(定义在先,调用 ...

  7. C语言学习笔记---结构体作为函数参数和返回值

      结构体不仅可以作为函数的参数传递,也可以作为函数的返回值.现在就分别来看一下这两种情况. 结构体作为参数 struct score {int chinese;int math;int englis ...

  8. C语言学习笔记09-数组、字符数组、字符串数组、二维数组(单字符输入输出putchar、getchar,字符串输入输出的scanf、gets、puts)

    C语言数组   数组作用:可以用来保存很多记录(可以看成一种大容器).一些简单游戏也基本由数组实现,如游戏地图(二维数组)等等.   一个数组 划分 多个单元(下标区分) -存放-> 多个同类元 ...

  9. 《Go语言圣经》学习笔记 第五章函数

    <Go语言圣经>学习笔记 第五章 函数 目录 函数声明 递归 多返回值 匿名函数 可变参数 Deferred函数 Panic异常 Recover捕获异常 注:学习<Go语言圣经> ...

  10. C语言学习笔记10-指针(动态内存分配malloc/calloc、realloc、释放free,可变数组实现;Tips:返回指针的函数使用本地变量有风险!;最后:函数指针)

    C语言:指针 1. 指针:保存地址的变量 *p (pointer) ,这种变量的值是内存的地址.   取地址符& 只用于获取变量(有地址的东西)的地址:scanf函数-取地址符   地址的大小 ...

最新文章

  1. 互联网人职业发展之路,你中招了吗?| 每日趣闻
  2. java对象 Java中 VO、 PO、DO、DTO、 BO、 QO、DAO、POJO的概念
  3. ios 监听TextField中内容变化
  4. CSS---网络编程
  5. 页面静态化2 --- 使用PHP缓存机制来完成页面静态化(上)(ob_flush和flush函数区别用法)...
  6. pytesseract:opencv预处理图片
  7. 中科大 计算机网络2 什么是互联网
  8. 同一解决方案内的多个项目之间如何引用?
  9. PDF以及PPT技巧
  10. html中阳历生日转换成农历,公历转农历生日查询器,公历农历换算器?
  11. 计算机主机电池馈电,电脑主板电池没电了会出现什么情况?电脑主板电池没电的解决方法...
  12. BACnet/IP之BACnet4j学习java代码例子属性读写同网段跨主机02
  13. Scons安装和使用
  14. 【逻辑与计算理论】λ演算、组合子逻辑的历史背景
  15. php laravel lumen 快速接入网易云信 im
  16. 刚当上leader,我让组员去开会,他非说有更重要的会
  17. Django之爱鲜蜂项目开发 day01 (二)
  18. 2022年湖北武汉安全员ABC证一年考几次?什么时候考试呢?
  19. django+xadmin 在线教育网站(三)
  20. 西门子300PLC系列(1):常用的西门子PLC分类有哪些?

热门文章

  1. dfs和bfs的总结
  2. 简历写得好,工作就好找
  3. 在甲骨文云容器实例(Container Instances)上部署Oracle Linux 8 Desktop加强版(包括Minio,ssh登录等)
  4. 恒压板框过滤实验数据处理_黑河市板框滤布用途,高效过滤器-泰翔工业滤料
  5. 「WeCode在线少儿编程」荣获腾讯教育年度总评榜大奖!
  6. unity实现点线动画 免费下载
  7. 使用OpenGL画出一个三维管道模型
  8. BlockChain区块链+IoT物联网的技术结合
  9. 2009年信息计算机在线考试,2009年计算机等级考试三级信息管理笔试试题4.doc
  10. 腾讯又刷屏了,升级员工关怀方案,员工法定退休可享荣誉金等福利