C基础知识(7):字符串
在C语言中,字符串实际上是使用null字符'\0' 终止的一维字符数组。因此,一个以null结尾的字符串,包含了组成字符串的字符。
C编译器会在初始化数组时,自动把'\0'放在字符串的末尾。所以不需要手动添加。
下面例子是一些常用的字符串函数的用法。
#include <stdio.h>
#include <string.h> int main() {
// (1)复制字符串str1 到字符串str2。(str2改变)
char str1[] = "This is a C program.";
char str2[];
strcpy(str2, str1);
printf("%s\n", str2); // This is a C program. // (2)连接字符串str4 到字符串str3 的末尾。(str3改变)
char str3[] = "The program is about ";
char str4[] = "string.";
strcat(str3, str4);
printf("%s\n", str3); // The program is about string. // (3)返回字符串的长度。
int len = strlen(str1);
printf("%d\n", len); // 20 // (4)如果a,b是相同的,则返回0;如果a<b则返回小于0;如果a>b则返回大于 0
char str5[] = "2017-03-01";
char str6[] = "2017-05-29";
char str7[] = "2016-12-25";
char str8[] = "2017-03-01";
int res1 = strcmp(str5, str6);
int res2 = strcmp(str5, str7);
int res3 = strcmp(str5, str8);
printf("%d %d %d\n", res1, res2, res3); // -2 1 0(<0 >0 =0) // (5)返回一个指针,指向字符串str1中字符h的第一次出现的位置。
char *c1 = strchr(str1, 'h');
printf("[*c1] = %c\n", *c1); // h
printf("[c1] = %p\n", c1); // 0x7fff5fd0ae01
printf("[&str1[1]] = %p\n", &str1[]); // 0x7fff5fd0ae01 // (6)返回一个指针,指向字符串str1中字符串is的第一次出现的位置。
char *c2 = strstr(str1, "is");
printf("[*c2] = %c\n", *c2); // i
printf("[c2] = %p\n", c2); // 0x7fff5fd0ae02
printf("[&str1[2]] = %p\n", &str1[]); // 0x7fff5fd0ae02
}
C基础知识(7):字符串的更多相关文章
- java_基础知识_字符串练习题_计算两个字符串的最长公共字串长度
package tek; Java算法——求出两个字符串的最长公共字符串 /** * @Title: 问题:有两个字符串str1和str2,求出两个字符串中最长公共字符串. * @author 匹夫( ...
- PHP基础知识之字符串运算符
两个字符串相加用 . 运算符(类似于+),如$a="str1" . "str2";$b=$a . "str3";=>"str ...
- Oracle数据库基础知识_字符串操作相关2
6.LPAD,RPAD 作用:左/右边的字符串填充一些特定的字符语法: LPAD(string , n, [pad_String]) string:可是字符或者参数 ...
- java 基础知识六 字符串2
java 基础知识六 字符串2 1.String类是final类,也即意味着String类不能被继承,并且它的成员方法都默认为final方法 . String 是不可变对象,也就是一旦创建,那么整 ...
- java 基础知识六 字符串1
java 基础知识六 字符串1 String 不是java的基本数据类型 String 不是java的基本数据类型 String 不是java的基本数据类型 字符串是是一个字符序列 1.创建 创建 ...
- Python3基础知识之字符串
1.运算符 * >>> b=a*5>>> b'pythonpythonpythonpythonpython'>>> b.replace('t',' ...
- C#基础知识之字符串比较方法:“==”操作符;RefernceEquals;String.Equals方法;String.Compare方法;String.CompareOrdinal方法。
一.“==”操作符:String.Equals:ReferenceEquals 方法 1.在编程中实际上我们只需要这两种比较,c#中类型也就这两种 (1)值类型的比较:一般我们就是判断两个值类型实例各 ...
- JavaScript基础知识(字符串的方法)
字符串的方法 1.字符串: 在js中被单引号或双引号包起来的内容都是字符串: var t = "true"; console.log(typeof t);// "stri ...
- Python基础知识:字符串
1.Python中大写字母命名的变量,默认为常量,不可修改:列如:MYSQL_CONNECTION = '192.168.1.1' 2.字符串换行输入格式:换行用\隔开,两行分别用引号,制表符\t,换 ...
- Python基础知识之字符串操作方法总结
Python 中字符串也是一种数据类型,针对此数据总结下常用的方法 1,字符串截取,变量[头下标:尾下标],就可以截取相应的字符串,其中下标是从0开始算起,可以是正数或负数,下标可以为空表示取到头或尾 ...
随机推荐
- K-MEANS算法及sklearn实现
K-MEANS算法 聚类概念: 1.无监督问题:我们手里没有标签 2.聚类:相似的东西分到一组 3.难点:如何评估,如何调参 4.要得到簇的个数,需要指定K值 5.质心:均值,即向量各维取平均即可 6 ...
- ABC065D Built[最小生成树]
这题和某道最短路题神似.对于任意点对,将他们连边,不如将他们分别沿$x,y$轴方向上点按顺序连起来,这样不仅可能多连通一些点,也花费更低,所以按照最短路那题的连边方式跑一个kruskal就行了. #i ...
- img标签的before,after伪类
在CSS中总有一些你不用不知道,用到才知道的“坑”.比如今天要谈的,把 before, after 伪类用在 <img> 标签上.嗯,实际上你用你会发现,在大多数浏览器这是无效的,dom中 ...
- Java-收邮件
import java.util.Properties; import javax.mail.Folder; import javax.mail.Message; import javax.mail. ...
- vue3.0以上关于打包后出现空白页和路由不起作用
1.解决页面空白,找不到资源 在项目根目录中的vue.config.js中publicPath: '/'修改为publicPath: './',如果没有这个文件,新建一个,基础代码为: module. ...
- luoguP1160 队列安排 x
P1160 队列安排 982通过 2.3K提交 题目提供者 该用户不存在 标签 云端 难度 普及/提高- 时空限制 1s / 128MB 题目描述 一个学校里老师要将班上N个同学排成一列,同学被编号为 ...
- Dijkstra算法和Floyd算法的正确性证明
说明: 本文仅提供关于两个算法的正确性的证明,不涉及对算法的过程描述和实现细节 本人算法菜鸟一枚,提供的证明仅是自己的思路,不保证正确,仅供参考,若有错误,欢迎拍砖指正 ------------- ...
- codeforces297B
Fish Weight CodeForces - 297B It is known that there are k fish species in the polar ocean, numbered ...
- 【知识库】-数据库_MySQL之基本数据查询:子查询、分组查询、模糊查询
简书作者:seay 文章出处: 关系数据库SQL之基本数据查询:子查询.分组查询.模糊查询 回顾:[知识库]-数据库_MySQL常用SQL语句语法大全示例 Learn [已经过测试校验] 一.简单查询 ...
- hadoop hdfs hbase优化实例
需求描述: 从hdfs中获取数据,字段url需要计算出url_type 通过进行hive的left outer join ,效率非常低.故将url的类型导入到hbase中,利用hbase快速查询的特点 ...