写在前面:C语言中没有String类型!!!


10.1.1

  • 以0结尾的一串字符,0或'\0'是一样的,但是和'0'不同。
  • 字符串变量的定义方法
  1. char * str="hello";
  2. char word[]="hello";
  3. char line[10]="hello";       其结尾均有自动补上的'\0'('\0'占一个字符)
  • C语言中两个字符串连接的方法,直接用双引号连接,没有运算符对字符串做运算。

10.1.2

  • 构造一个字符串用数组方式 char word[]="hello";
  • 处理一个字符串用指针方式 char * str = "hello";
  • 字符串可以表达为char*,但是char*不一定是字符串,可能是指针指向单个字符。

10.1.3

  • 安全的输入

char string[8];

scanf("%7s",string);

在%和s之间的数字表示最多允许读入的字符的数量,这个数字应该比数组大小小一。

  • char buffer [100]="";
  • 这是一个空的字符串
  • char buffer []="";
  • 这个数组的长度只有1

10.1.4

字符串数组:

  • char *month [];  这是一个指针数组,如果往其中赋上字符串就是指向字符串的指针数组。
  • char month[] [5]; 这是一个二维数组,如果需要附上字符串的话,每个字符串长度不超过(5-1)位。
#include<stdio.h>
int main(void){int a;char *month[]={"jar","feb","mar","apr","may","june","july","aug","sep","oct","nov","dec"};scanf("%d",&a);printf("%4s",month[a-1]);return 0;
} 

10.2.1

有关字符串函数:putchar(int a); 原封输出a       getchar(void);  返回值是int为了返回EOF

#include<stdio.h>
int main(void){int ch;while((ch=getchar())!=EOF){putchar(ch);}printf("EOF");return 0;
} 

10.2.2~10.2.5

#include<string.h>

  1. strlen(const char *s) 返回字符串的长度
  2. strcmp(const char*s1,const char*s2)   比较两个字符串的长度(0:s1==s2  1:s1>s2  -1:s1<s2)
  3. char * strcpy(char *restrict dst, const char* restrict src) 把src的字符拷贝到dst,restrict不能重叠(C99,不能在原有的基础上覆盖)

<3>常用套路,复制一个字符串(记得+1)

char *dst= (char*)malloc(strlen(src)+1);
strcpy(dst,src);

4.char*strcat(char*restrict s1,const char *restrict s2) 把s2拷贝到s1的后面,接成长字符串,返回s1,(s1必须拥有足够空间)

5.char *strchr(const char*s,int c)   把c之后的字符串输出。c可以为'a'。

char* strrchr(const char*s,int c)

C语言二刷第七天:字符串(mooc视频;老师:翁恺)相关推荐

  1. c语言二维数组如何定义字符串?

    二维字符数组的定义格式为:char 数组名[第一维大小][第二维大小]; 例如:char c[3][10]; //定义了一个3行10列的二维字符数组c 由于该二维数组的每一行 c[0].c[1].c[ ...

  2. 翁恺c语言视频作业题,翁恺入门C语言第2周编程练习

    题目内容: UTC是世界协调时,BJT是北京时间,UTC时间相当于BJT减去8.现在,你的程序要读入一个整数,表示BJT的时和分.整数的个位和十位表示分,百位和千位表示小时.如果小时小于10,则没有千 ...

  3. c 语言定义2维字符串数组赋值,二维数组赋值字符串 c 语言 二维字符串数组赋值问题...

    C语言中二维字符数组应该怎样赋值? c语言二维数组如何定义字符串????急... 二维字符数组的定义格式为:char 数组名[第一维大小][第二维大小]; 例如:char c[3][10]; //定义 ...

  4. C语言程序设计笔记(浙大翁恺版) 第七章:函数

    按照中国大学MOOC上浙江大学翁恺老师主讲的版本所作,B站上也有资源.原课程链接如下: https://www.icourse163.org/course/ZJU-9001 由于是大三抽空回头整理的, ...

  5. C语言程序设计笔记(浙大翁恺版) 第十周:字符串

    按照中国大学MOOC上浙江大学翁恺老师主讲的版本所作,B站上也有资源.原课程链接如下: https://www.icourse163.org/course/ZJU-9001 由于是大三抽空回头整理的, ...

  6. C语言程序设计笔记(浙大翁恺版) 第九周:指针

    按照中国大学MOOC上浙江大学翁恺老师主讲的版本所作,B站上也有资源.原课程链接如下: https://www.icourse163.org/course/ZJU-9001 由于是大三抽空回头整理的, ...

  7. C语言程序设计笔记(浙大翁恺版) 第二周:计算

    按照中国大学MOOC上浙江大学翁恺老师主讲的版本所作,B站上也有资源.原课程链接如下: https://www.icourse163.org/course/ZJU-9001 由于是大三抽空回头整理的, ...

  8. C语言程序设计笔记(浙大翁恺版) 第三周:判断

    按照中国大学MOOC上浙江大学翁恺老师主讲的版本所作,B站上也有资源.原课程链接如下: https://www.icourse163.org/course/ZJU-9001 由于是大三抽空回头整理的, ...

  9. C语言程序设计笔记(浙大翁恺版) 第八周:数组

    按照中国大学MOOC上浙江大学翁恺老师主讲的版本所作,B站上也有资源.原课程链接如下: https://www.icourse163.org/course/ZJU-9001 由于是大三抽空回头整理的, ...

  10. C语言程序设计笔记(浙大翁恺版) 第五周:循环控制

    按照中国大学MOOC上浙江大学翁恺老师主讲的版本所作,B站上也有资源.原课程链接如下: https://www.icourse163.org/course/ZJU-9001 由于是大三抽空回头整理的, ...

最新文章

  1. graphql_GraphQL的稳步上升
  2. Ubuntu adb 报错:no permissions (user in plugdev group; are your udev rules wrong?);
  3. mysql 前后代表什么_MySQL的锁
  4. 前端页面水印生成实现
  5. 【转】采用dlopen、dlsym、dlclose加载动态链接库
  6. webServer tomcat5/tomcat6/tomcat7诠释
  7. 整数划分问题的递归算法-c语言,简单的整数划分问题(递归)
  8. server sql 水平分表_springboot集成Shardingsphere进行分库分表
  9. Layer弹出层关闭后刷新父页面
  10. 库克:明天将宣布重大消息 但不是新产品
  11. Javascript与未来十年的数据编程
  12. Oracle 11g 新特性 – HM(Hang Manager)简介
  13. 动态规划-最少硬币问题
  14. 分治算法——在真币中找出伪币
  15. 水准网测量平差matlab_基于MATLAB的测量平差计算
  16. 电脑重启只剩下c盘怎么办_win10突然只剩下c盘了怎么办|win10突然只剩下c盘的解决方法...
  17. CNTV视频回看下载地址
  18. 指数波段划分以及底部反弹行业特征统计分析
  19. 音视频入门:H264、H265概念总结
  20. 台式计算机wifi老掉线,电脑连接WiFi容易断线或速度慢怎么回事 教你怎么解决

热门文章

  1. 在Ubuntu 16.04 中将应用添加到系统服务中
  2. No all pattern found! file already patched?
  3. C语言实现程序的暂停
  4. oracle赋权directory,ORACLE DIRECTORY目录管理步骤
  5. 产品分析报告 | 二手市场面临着什么痛点?
  6. TTime::FormatL 详解
  7. 小丽和小张 --- 作者:歪瓜裂枣
  8. C/C++程序设计13:代码实现开机自启动--以QQ为例
  9. 关于java.lang.IllegalArgumentException: KFC Crazy Thursday need $50的问题
  10. python3表白代码弹窗_抖音整蛊表白电脑弹窗代码大全