字符串 上

字符串

从概念上讲,C中没有字符串数据类型

C中使用字符数组来模拟字符串

C中字符串是以‘\0’结束的字符数组

C中字符串可以分配于栈空间、堆空间或者只读存储区

C中字符串常量表示一块包括字符串中所有字符以及一个空字符(‘\0‘)的内存区域的地址

字符串长度就是字符串所包含字符的个数

C中字符串长度指的是第一个‘\0’字符前出现的字符个数

C通过‘\0’结束符来确定字符串的长度

字符串 存储

字符数组存储字符串.储存在栈中,可以修改任意一字符

指针存储字符串.指针存储在栈中,字符串存储在只读存储区.栈中指针存储字符串首地址.不可修改任意一字符

字符串传递

1.若函数要修改此字符串,则使用字符数组存储

2.若函数仅是使用,则使用指针存储,并使用const属性

字符串 函数返回

1.形参方式返回

2.在函数中使用static修饰要返回的字符数组指针

TIPS:千万不要返回函数局部变量栈中指针内容

3.返回字符数组存储局部变量

返回乱码

字符串 比较

比较字符串string1和string2    < 大小写混合亦可 >

返回时刻:遇到同位置不同字符或者‘\0‘

返回1   string1返回点字符在string2后面

返回-1  string1返回点字符在string2前面

返回0  string1所有字符和string2相同

strcmp不会修改参数值,但依然以‘\0’作为结束符

strncmp

限定n个字符比较    <大小写混合亦可>

返回时刻:遇到同位置不同字符、n个字符或者‘\0‘

谨记:安全起见,建议使用strncmp 函数

字符串  连接

strncat最多从源字符串中复制len个字符到目标串中

strncat总是在结果字符串后面添加‘\0’

strncat不会用‘\0’填充目标串中的剩余空间

谨记:安全起见,建议使用strncat 函数

字符串 复制

strncpy只复制len个字符到目标字符串

当源字符串的长度小于len时,剩余的空间以‘\0’填充

当源字符串的长度大于len时,只有len个字符串会被复制,且将不会以‘\0’结束

TIPS:注意点

使用strncpy复制字符串给字符数组,首先应清空字符数组,避免出现末尾乱码

strncpy只用于字符串复制,并且包含字符串的结束符

字符串 上,布布扣,bubuko.com

时间: 2024-10-10 03:18:38

字符串 上的相关文章

禁止字符串 字符串上的动态规划

// 禁止字符串 字符串上的动态规划 // 挑战程序设计第二版 page 368 // 考虑只由'A','G','C','T'四种字符组成的DNF字符串 // 给定一个长度为k的字符串S,计算长度恰好为n的且 // 不包含S的字符串的个数输入结果对10009取膜 // 1<=k<=100 // 1<=n<=10000 // // 这道题想动态规划,肯定是n*k的算法,即10的七次方以内 // 的复杂度 // // 但是,之后就卡住了... // // 仔细研习了书上的思路,发现状态

python 字节字符串上的字符串操作

问题:想在字节字符串上执行普通的文本操作(比如移除,搜索和替换). 解决方案 1)字节字符串同样也支持大部分和文本字符串一样的内置操作.比如: >>> data = b'Hello World' >>> data[0:5] b'Hello' >>> data.startswith(b'Hello') True >>> data.split() [b'Hello', b'World'] >>> data.replace

寻找子字符串——上

第十一章的习题7,刚开始觉得简单,可是实际思考时发现要考虑很多东西,然后脑子就一片混沌了,然后问题一拖一个月,然而时间并没有帮我解决掉问题,问题还是要自己去努力接触才能发展的呀. 有参考答案,上网也找到了答案,昨天验证了下,是对的.自己就是眼高手低,还犟,想凭借自己的"智慧"想出来(别人的我看了觉得费劲,而且很难理解他的思想,他到底是怎么想到的呢).不过不能自负,遇到问题想不出来很正常,就该学习自己想不到的思路,改变自己的思维方式.应该向前人学习,可以先读懂,理解一点是一点,接触多了自

python学习之字符串(上)

字符串python 的字符串被划归为不可变序列这一类别,意味着这些字符串所包含的字符存在从左至右的位置顺序,并且他们不可以在原处修改. 字符串常量单引号  'spam'双引号  "spam"三引号   '''...spam...'''   ""...spam...""转义字符 "s\tp\na\om"Raw字符串:r"c:\new\test.spam" 单双引号字符串是一样的在python字符串中,单引号和

图片转换成字符串上传到服务器及字符串转换为图片

#pragma mark ------- UIImage图片转成base64字符串: //将 已转换成为 NSData 类型的图片 转换为 NSString 类型 //iOS 7.0+      ----    base64EncodedStringWithOptions NSString *_encodedImageStr = [imageData base64EncodedStringWithOptions:NSDataBase64Encoding64CharacterLineLength]

PHP在拆分字符串上substr和explode的选择

一.explode $str = 'data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAlcAAAECCAIAAABc8mUKAAAg...'; $tmpArr = explode(',', $str); $a = $tmpArr[0]; $b = $tmpArr[1]; 其中,OP数为11,执行操作用到了7个不同的函数 二.substr+strpos $str = 'data:image/png;base64,iVBORw0KGgoAAAANSUhEU

POJ 3261 字符串上的k次覆盖问题

题目大意: 给定一个数组,求一个最大的长度的子串至少出现过k次 一个子串出现多次,也就是说必然存在2个子串间的前缀长度为所求的值 通过二分答案,通过线性扫一遍,去判断出现次数,也就是说每次遇见一个height[i] , 出现次数就加1,否则重置为1 1 #include <cstdio> 2 #include <cstring> 3 #include <iostream> 4 using namespace std; 5 const int N = 20010; 6 i

leetCode 6. ZigZag Conversion 字符串 (上传费劲)

6. ZigZag Conversion 题目:https://leetcode.com/problems/zigzag-conversion/ string convert2(string s, int numRows) { if (s.length() < 2 || numRows < 2) return s; int cycle = 2 * numRows - 2; string tmp; string result; for (int i = 0; i < numRows; i+

Uploadify/uploadifive上传(中文文档)

Uploadify是一款基于JQuery的优秀的文件/图片上传的插件,有基于Flash和HTML5两种版本. Uploadify/uploadifive主要特点有: 1. 多文件上传 2. 个性化设置 3. 上传进度条显示 4. 拖拽上传(HTML5版本) 官网:http://www.uploadify.com 部署 在部署一个Uploadify实例前,请确保满足最低要求: 1.jQuery 1.4.x 或更高版本 2.Flash Player 9.0.24 或更高版本 3.支持PHP, ASP