strlen字符串指针_字符指针变量

strlen字符串指针_字符指针变量C:字符串、字符串指针、字符串函数目录 一、C字符串(字符数组)二、字符串常量指针(指向字符串的指针)!!!三、C字符串函数strlen(str)strcat(s1

C:字符串、字符串指针、字符串函数   目录 一、C字符串(字符数组)二、字符串常量指针(指向字符串的指针)!!!三、C字符串函数strlen(str)strcat(s1, s2);strtok()strcpy(s1, s2)strcmp(s1, s2)strchr(s1, ch);strstr(s1, s2);strlwr(str); // lowerstrupr(str); // upper   一、C字符串(字符数组)   在 C 语言中,字符串实际上是使用 空字符 0 结尾的 一维字符数组。因此,0 是用于标记字符串的结束。   空字符()又称结束符,缩写 NUL,是一个数值为 0 的控制字符,0 是转义字符,意思是告诉编译器,这不是字符 0,而是 空字符。   C 编译器会在初始化数组时,自动把 0 放在字符串的末尾。   每个字符用一个地址来存储。   
在这里插入图片描述   ————   字符数组 只有在定义时才可一次性赋值,一旦定义完就只能一个个赋值,如:   二、字符串常量指针(指向字符串的指针)!!!   常量指针:指向常量的指针   那这两种写法有什么区别么?   在内存中存储区域不同,字符数组 存储在 全局数据区或栈区,字符串指针 形式字符串存储在 常量区。【全局数据区和栈区 的字符串有 读取和写入 的权限,而 常量区 字符串 只有读取权限,没有写入权限。这就导致了 字符数组 在定义后可读取和修改每个字符;而 字符串指针 一旦定义后便不可修改,可整体赋值(更改指针、而非通过指针更改值)】   (pstr+i)、pstr[i]、(str+i) 、str[i] 均可正常使用;   ————   2.1 字符数组、字符串指针,在for循环中重复创建的地址不同;   三、C字符串函数   strlen(str)   strlen 的工作原理:只要给我个地址,那么strlen就可以 向后数 字符,至到遇到 ‘0’ 就会停止。   这个地址就是字符串中,其中一个字符的地址;strlen() 接收地址后,开始 向后数 字符,至到遇到 ‘0’ 停止。   测试用例:   注意:C语言中,一般在用包围字符串下自动末尾添加, 如:;逐个赋值不会自动添加   ———— strcat(s1, s2);   连接字符串 s2 到字符串 s1 的末尾。   将把 s2 连接到 s1 后面,并删除原来 s1 最后的结束标志 。这意味着,s1 必须足够长,要能够同时容纳 s1和 s2,否则会越界(超出范围)。   函数的声明:   提问:   ———— strtok()   C/C++字符串函数strtok()详解   参数:str:待分割的字符串(c-string);delimiters:分割符字符串   当在参数 s 的字符串中发现参数 delimiters 中包涵的分割字符时,则会将该字符改为 字符。在第一次调用时, 必需给予参数字符串,往后的调用则将参数 设置成 。   需要注意的是,使用该函数进行字符串分割时,会破坏被分解字符串的完整,调用前和调用后的 已经不一样了。第一次分割之后,原字符串 是分割完成之后的第一个字符串,剩余的字符串存储在一个静态变量中,因此多线程同时访问该静态变量时,则会出现错误。   
在这里插入图片描述   ———— strcpy(s1, s2)   复制字符串 s2 到字符串 s1。   会把 s2 中的字符串拷贝到 s1 中,字符串结束标志 也一同拷贝。   ———— strcmp(s1, s2)   如果 s1 和 s2 是相同的,则返回 0;   如果 s1<s2 则返回小于 0;   如果 s1>s2 则返回大于 0。   ———— strchr(s1, ch);   返回一个指针,指向字符串 s1 中字符 ch 的第一次出现的位置。   ———— strstr(s1, s2);   返回一个指针,指向字符串 s1 中字符串 s2 的第一次出现的位置; 查找失败返回NULL   ———— strlwr(str); // lower   将字符串中的大写字母转换成小写字母。   ———— strupr(str); // upper   将字符串中的小写字母转换成大写字母。   参考链接:   字符串函数讲解   【C语言】字符串函数「超详细」   C语言——字符串指针篇

2024最新激活全家桶教程,稳定运行到2099年,请移步至置顶文章:https://sigusoft.com/99576.html

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请联系我们举报,一经查实,本站将立刻删除。 文章由激活谷谷主-小谷整理,转载请注明出处:https://sigusoft.com/52606.html

(0)
上一篇 2024年 9月 2日
下一篇 2024年 9月 2日

相关推荐

关注微信