字符串

基本概念

1.概念上讲,C语言中没有字符串数据类型
2. C语言中使用字符数组来模拟字符串
3. C语言中的字符串是以’\0’结束的字符数组
4. C语言中的字符串可以分配于栈空间,堆空间或者只读存储区

#include <stdio.h>
#include <malloc.h>int main()
{char s1[] = {'H', 'e', 'l', 'l', 'o'}; //字符数组char s2[] = {'H', 'e', 'l', 'l', 'o', '\0'}; //字符串char* s3 = "Hello"; //只读存储区,不能改变char* s4 = (char*)malloc(6*sizeof(char));//堆空间s4[0] = 'H';s4[1] = 'e';s4[2] = 'l';s4[3] = 'l';s4[4] = 'o';s4[5] = '\0';free(s4);return 0;
}

字符串长度

字符串长度 = 字符串所包含的字符的个数。
第一个’\0’字符前出现的字符个数

函数 :’strlen(a)’来获取

面试题:利用一条语句实现strlen

利用递归调用实现:

#include <stdio.h>
#include <assert.h>
size_t strlen(const char* s)
{return ( assert(s), (*s ? (strlen(s+1) + 1) : 0) );
}
int main()
{printf("%d\n", strlen( NULL));return 0;
}

注意:尽量不要编写标准库中已经存在的函数

不指定长度的字符串函数

这些函数通过寻找字符串的’\0’来判断字符串长度,从而进行字符串操作

strcpy (char*, const char*);
strcat (char*, const char*);strcmp (const char*, const char*)
//两个字符串相同,返回值=0
//1>2 ,返回值>0
//2>1 ,返回值<0

面试题 :strcpy

#include <stdio.h>
#include <assert.h>
char* strcpy(char* dst, const char* src)
{char* ret = dst;assert(dst && src);while( (*dst++ = *src++) != '\0' );return ret;
}int main()
{char dst[20];printf("%s\n", strcpy(dst, "Delphi Tang!"));return 0;
}

指定长度的字符串函数

这些函数通过指定长度参数,从而进行字符串操作

char* strncpy (char*, const char*,size_t len);
//复制<len时 ,剩余空间用'\0'填充
//复制>len时 ,复制len个字符 ,且不用'\0'结尾
char* strncat (char*, const char*,size_t len);
总在结果字符串后面添加'\0'
char* strncmp (const char*, const char*,size_t len)
//两个字符串相同,返回值=0
//1>2 ,返回值>0
//2>1 ,返回值<0

L24c语言中的字符串相关推荐

  1. c语言字符串前加l,【C】 30_C语言中的字符串

    字符串的概念 字符串是有序字符的集合 字符串是程序中的基本元素之一 C 语言中没有字符串的概念 C 语言中通过特殊的字符数组模拟字符串 C 语言中的字符串是以 '\0' 结尾的字符数组 字符串与字符数 ...

  2. python字符串截取方法_如何使用python语言中的字符串方法截取字符串

    在我们使用python语言中的字符串方法时,可能会判断某个字符串是否以什么开头,可以使用什么进行截取等.下面利用几个实例说明字符串中的方法的用法,操作如下: 工具/原料 python 截图工具 方法/ ...

  3. 【C语言进阶深度学习记录】二十六 C语言中的字符串与字符数组的详细分析

    之前有一篇文章是学习了字符和字符串的,可以与之结合学习:[C语言进阶深度学习记录]十二 C语言中的:字符和字符串 文章目录 1 字符串的概念 1.1 字符串与字符数组 1.2 字符数组与字符串代码分析 ...

  4. c语言中用于获取字符串长度的函数是,C语言中求字符串长度的函数的几种实现方法...

    C语言中求字符串长度的函数的几种实现方法 1.最常用的方法是创建一个计数器,判断是否遇到'\0',不是'\0'指针就往后加一. int my_strlen(const char *str) { ass ...

  5. c语言中字符串数组应用,C语言中字符变量字符串和字符数组应用.doc

    C语言中字符变量字符串和字符数组应用 字符变量(type`char`?字符串(string)和字符数组(type`char`arrary)是C语言中非常重要的结构成分,也是应用编程中常发生混淆?导致错 ...

  6. c语言字 字符串转换成数组_C语言学习教程之详解C语言中的字符串数组

    在C语言当中,字符串数组可以使用: char a[] [10]; 或者 char *a[]; 表示 第一种表示方式固定了每个字符串的最大大小.第二种没有字符串的大小限制. #include 总结 以上 ...

  7. c语言中字符怎么表示6,6、C语言中的字符串

    一.C语言中的字符串 字符串是一种重要的数据类型,但是C语言并没有显示的字符串数据类型,不像java有String ,OBC有NSString等等.所以C语言中的字符串一般以字符串常量的形式出现或者存 ...

  8. c 语言输出字符用什么作用是什么,C语言中输出字符串用什么符号

    C语言中输出字符串用双引号. (推荐教程:c语言教程) 详细解读: 在C语言中,有两个函数可以在控制台(显示器)上输出字符串,它们分别是: puts():输出字符串并自动换行,该函数只能输出字符串. ...

  9. C语言中lwr是谁的缩写,C语言中关于字符串的操作(转)

    浅析C语言中关于字符串的操作(转) 前言:如果您是学C/C 的,对于字符串的操作不是很了解,请您耐心读完.作为我的朋友,我很乐意和您分享我最近的知识积累.毕 竟,网上很少有这么全,这么细的介绍,更少有 ...

最新文章

  1. MySql中的运算符
  2. Git 使用篇一:初步使用GitHub,下载安装git,并上传项目
  3. java笔记类与对象3.7-3.10 2020.3.17
  4. 【Tools】Navicat Premium12安装教程
  5. php签名墙代码,我们是一家人(签名墙)
  6. md5会重复吗_自媒体平台视频重复审查机制,如何避免自己做的视频和别人的重复...
  7. android.mk 翻译,翻译ANDROID-MK.TXT
  8. 紫书的训练计划——一点点来,坚持到底!
  9. sh.k7p.work/index.php,Laowang's Blogs
  10. nasa注册_今天是黑洞星期五!
  11. textarea限制每行可输入固定个数的字符
  12. 地铁人多不多可在线查询了 高德地图率先在北京上线新功能
  13. 源码nginx+php
  14. kafka集群搭建(三台服务器)
  15. phpmyadmin scriptssetup.php 反序列化漏洞(WooYun-2016-199433)
  16. python 面积计算器
  17. 最优DP转LVDS解决方案|低成本DP to LVDS转换设计|CS5211方案优势
  18. 并发框架——Distruptor
  19. SQLServer中定义拼音检索函数,根据中文参数返回对应汉字的拼音首字母
  20. python多线程模块threading学习笔记(5)之锁Lock

热门文章

  1. 计算机专业就业情况报告,计算机专业毕业生就业情况调查报告
  2. WFE and WFI
  3. Win10环境变量默认值
  4. 【干货】Entity Embeddings : 利用深度学习训练结构化数据的实体嵌入
  5. 忆流年代挂源码 公益版
  6. 浅谈未来人类发展方向
  7. 紫禁繁花服务器维护一般多久,紫禁繁花手游2020年12月30日更新公告
  8. php 操作字符串的函数,常用php字符串处理函数整理笔记
  9. 「内容管理系统」34个无头CMS应该在你的技术雷达上
  10. 五四青年节54行代码向祖国告白