L24c语言中的字符串
来源:互联网 发布:杭州恩牛网络借壳上市 编辑:程序博客网 时间:2024/06/16 09:08
字符串
基本概念
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
0 0
- L24c语言中的字符串
- C语言中的字符串
- c语言中的字符串
- C语言中的字符串
- C语言中的字符串
- c语言中的字符串
- C语言中的字符串
- C语言中的字符串
- c语言中的字符串
- C语言中的字符串
- C语言中的 字符串
- C语言中的字符串
- C语言中的字符串
- C语言中的字符串
- c 语言中的字符串操作
- C语言中的字符串处理
- c 语言中的字符串操作
- C语言中的字符串连接
- Rightmost Digit
- Add Two Numbers
- 再说MySQL中的 table_id
- speex编解码在android上实现
- 5.2-3
- L24c语言中的字符串
- jquery的$.extend和$.fn.extend作用及区别
- CF#304Div2
- 2015`06`03实习面试收获
- [Servlet]什么是Servlet
- Hadoop之——分布式集群安装过程简化版
- Matlab之统计函数
- jsp ,servlet中路径
- 简单利用CodeDom动态编译的例子