美文网首页一个程序猿的奋斗史
C语言学习10.字符串和相关函数

C语言学习10.字符串和相关函数

作者: 快乐的提千万 | 来源:发表于2017-10-28 15:03 被阅读3次

C语言中,没有string类型,有三种表现形式:字面值常量,字符串数组,字符串指针。
字符串指针变量:指向字符串的头指针。
char* ps = "language"; //可写为:char* ps; ps = "language";
字符数组=元素+元素+元素+。。。
static char s[] = {"language"}; //只能对各元素逐个赋值修改

注意:
定义时不要指向不可用地址(或者未知地址)char* name; //不知道指向哪里,需要初始化
用数组申请栈区 char name[20];
申请堆区 char* name; name = (char*)malloc(50);

字符串常量的简写:

char* p = "abcdef"; //常量只读,strcpy(p,"def");错误,因为p指向的a是常量只读的
char a[] = "abcdef"; //可以修改,但是只能单个元素修改,strcpy(a,"def");是对的
char = 'a';               //堆区字符         sizeof     1
char a[] = "abc";         //栈区字符串                  3
char* p = "abc";          //常量区字符串               4(指针)
char* p1 = new char[100]; //堆区字符串                 4

字符串处理相关的常用函数库:

strlen 求字符串长度

unsigned int strlen(char* str);
测试字符串或字符串常量的长度(不包含'\0'),作为函数的返回值。
sizeof会将\0后面的垃圾值也算在内。

strcmp 字符串比较

char* strcmp(char* str1,char* str2);
1=2,返回0;
1>2,返回正整数;
1<2,返回负整数。
比较的是ascll码,从左到右,遇到‘\0’为止(结束符也参与比较)

strcpy 字符串拷贝

char* strcpy(char* str1,char* str2);
2拷贝到1 ,字符数组1必须足够大,拷贝时‘\0’一同拷贝,不能使用赋值语句为一个字符数组赋值。

strcat 字符串连接

char* strcat(char* str1,char* str2);
删掉1的'\0',字符串2拷贝到1的后面(中间有一个空格)
连接后1变长,2不变
要保证字符串1的空间足够,否则会占用后面的储存空间。

strtok 切割字符串

p1=strtok(str3,'#');以某个字符串切分某个字符串(取前面的)
p2=strtok(NULL,'#');接着上次的调用继续切分后面的内容,所以第一个参数一定要传NULL.
p3=strtok(NULL,'#');

strchr 查找某个字符

strstr 在指定字符串中查找某个字符串,即 查找子字符串

转型:

atoi(char *) 字符串型--->整型
itoa(int,cahr *,int)整形---->字符串型
sprintf(char *,格式化输入) 赋给字符串,而不打印出来。

相关文章

  • C语言学习10.字符串和相关函数

    C语言中,没有string类型,有三种表现形式:字面值常量,字符串数组,字符串指针。字符串指针变量:指向字符串的头...

  • Redis 源码简洁剖析 02 - SDS 字符串

    C 语言的字符串函数 C 语言 string 函数[https://devdocs.io/c-strings/],...

  • C语言字符串相关函数

    gets gets函数会保留空格,当输入回车时才认为输入完成。gets可能会有缓冲区溢出的危险。 fgets fg...

  • C语言字符串相关函数

    在线API文档:http://www.kuqin.com/clib/string/strcpy.html 1.st...

  • 39_字符串类的创建(上)

    关键词: 0. 历史遗留问题 C语言不支持真正意义上的字符串 C语言用字符数组和一组函数实现字符串操作 C语言不支...

  • C语言函数指针和指针函数

    C语言函数指针和指针函数 在学习C语言的过程中,“指针函数”和“函数指针”经常容易搞混了, 最简单的辨别方式就是看...

  • 字符串函数

    字符串转换类函数 addcslashes函数:以C语言风格使用反斜线转义字符串中的字符addslashes函数:使...

  • C++11新特性(20)-用string对象处理文件名

    C风格字符串 从C语言开始,就已经实现了对字符串的支持。为了处理C风格字符串,C语言标准库提供了一组函数,它们被定...

  • C++中数组操作符的重载

    字符串类的兼容性 存在的一些历史遗留问题C语言不支持真正意义上的字符串C语言用字符数组和一组函数实现字符串操作C语...

  • 各种时间函数的恩与怨

    C++标准库没有提供所谓的日期类型。C++继承了C语言用于日期和时间操作的结构和函数。为了使用日期和时间相关的函数...

网友评论

    本文标题:C语言学习10.字符串和相关函数

    本文链接:https://www.haomeiwen.com/subject/xqlspxtx.html