美文网首页
c风格的字符串

c风格的字符串

作者: arkliu | 来源:发表于2022-11-17 08:42 被阅读0次

C语言规定:如果字符型数组的末尾包含了空字符\0,(也就是0), 那么该数组的内容就是一个字符串。

因为字符串需要用0结尾,所以在声明字符数组的时候,要预留多一个字节来存放0.

char name[21]; // 最多可以存放20个字节

初始化方法

char name[11]; // 最多存放10个字符,里面是垃圾直
char name2[11] = "hello"; // 初始内容为hello, 多余部分系统自动填0
char name3[] = "hello";
char name4[11] = {"hello"};
char name5 = {0};  // 把全部元素初始化为0

清空字符串

char name[11]; // 最多存放10个字符,里面是垃圾直
memset(name, 0, sizeof(name));

字符串复制

  • strcpy
char * strcpy(char * dest, char* src);
将参数src字符串拷贝至dest所指的地址
返回值:返回参数dest字符串起始地址
复制完成会在dest后追加0

如果参数dest所指的内存空间不够大,会导致数组越界
  • strncpy
char * strcpy(char * dest, char* src, const size_t n);
将src的前n个字符,赋值给dest
返回值:返回参数dest字符串起始地址

如果src字符串长度小于n,则拷贝完字符串后,在dest后追加0,直到n个
如果src字符串长度大于n, 就截取src的前n个字符,不会在后面追加0

如果参数dest所指的内存空间不够大,会导致数组越界

\color{red}{如果src字符串长度大于n, 就截取src的前n个字符,不会在后面追加0} 这里有一个坑, 由于不会追加0, 导致不确定dest的结尾处在哪里,因此使用前,先清空下

char name[11]; // 最多存放10个字符,里面是垃圾直
memset(name, 0 , sizeof(name));
strncpy(name, "hello", 3);
cout << "name = "<<name<<endl;

strlen()获取字符串的长度

strlen()获取字符串的长度,不包含0。

字符串拼接

char* strcat(char *dest, const char * src);

char * strncat(char *dest, const char * src, const size_t n);

字符串比较

int strcmp(const char *str1, const char * str2);
int strcmp(const char *str1, const char * str2, const size_t n);

字符查找

char * strchr(const char *s, const int c);

返回一个指向在字符串s中第一个出现c的位置,如果找不到返回0.

字符串查找

char * strstr(const char* str, const char* substr);
检索子串在str中首次出现的位置,如果找不到则返回0

在vs中,如果要使用c标准的字符串操作函数,要在源代码文件最上面,加上

#define_CRT_SECURE_NO_WARNINGS

相关文章

  • C++<第十九篇>:字符串

    C++ 中的字符串有两种形式:(1)C风格的字符串 (2)C++引入的 string 类型的字符串。 (1)C风格...

  • 22 STL(二)容器string

    string我们之前使用过,如给类的属性定为字符串就要include ,是C++风格的字符串,c风格的字符串是个c...

  • C++ 字符串

    C++ 提供了以下两种类型的字符串表示形式: C 风格字符串 C++ 引入的 string 类类型 1、C 风格字...

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

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

  • c++ string怎样判断字符串里面是否含有某个字符串?

    有两种方法可以使用,C++风格,或C风格。一、C++风格。C++的string类提供了字符串中查找另一个字符串的函...

  • 字符串

    C++提供了两种字符串的表示形式: C风格字符 C++引入的string类型 C风格 函数 C++中的String类

  • 字符串

    字符串 C 风格的字符串起源于 C 语言,并在 C++ 中继续得到支持。字符串实际上是使用 null 字符 '\0...

  • c++读书笔记

    c++有很多有意思的小点,今天来记录下这些点 字符串 变量声明 指针 1、字符串 c++中有两类字符串: c风格字...

  • 字符串

    字符串是存储在内存的连续字节中的一系列字符。C++处理字符串的方式有两种: C-风格字符串(C-style str...

  • string类型数据求长度(C++版)

    问题 分析 string 是C++里的字符串类型strlen 是对C风格字符串来使用的,也就是说 char [] ...

网友评论

      本文标题:c风格的字符串

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