在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):字符串的更多相关文章

  1. java_基础知识_字符串练习题_计算两个字符串的最长公共字串长度

    package tek; Java算法——求出两个字符串的最长公共字符串 /** * @Title: 问题:有两个字符串str1和str2,求出两个字符串中最长公共字符串. * @author 匹夫( ...

  2. PHP基础知识之字符串运算符

    两个字符串相加用 . 运算符(类似于+),如$a="str1" . "str2";$b=$a . "str3";=>"str ...

  3. Oracle数据库基础知识_字符串操作相关2

    6.LPAD,RPAD 作用:左/右边的字符串填充一些特定的字符语法: LPAD(string , n, [pad_String])          string:可是字符或者参数          ...

  4. java 基础知识六 字符串2

    java  基础知识六  字符串2 1.String类是final类,也即意味着String类不能被继承,并且它的成员方法都默认为final方法 . String 是不可变对象,也就是一旦创建,那么整 ...

  5. java 基础知识六 字符串1

    java  基础知识六  字符串1 String 不是java的基本数据类型 String 不是java的基本数据类型 String 不是java的基本数据类型 字符串是是一个字符序列 1.创建 创建 ...

  6. Python3基础知识之字符串

    1.运算符 * >>> b=a*5>>> b'pythonpythonpythonpythonpython'>>> b.replace('t',' ...

  7. C#基础知识之字符串比较方法:“==”操作符;RefernceEquals;String.Equals方法;String.Compare方法;String.CompareOrdinal方法。

    一.“==”操作符:String.Equals:ReferenceEquals 方法 1.在编程中实际上我们只需要这两种比较,c#中类型也就这两种 (1)值类型的比较:一般我们就是判断两个值类型实例各 ...

  8. JavaScript基础知识(字符串的方法)

    字符串的方法 1.字符串: 在js中被单引号或双引号包起来的内容都是字符串: var t = "true"; console.log(typeof t);// "stri ...

  9. Python基础知识:字符串

    1.Python中大写字母命名的变量,默认为常量,不可修改:列如:MYSQL_CONNECTION = '192.168.1.1' 2.字符串换行输入格式:换行用\隔开,两行分别用引号,制表符\t,换 ...

  10. Python基础知识之字符串操作方法总结

    Python 中字符串也是一种数据类型,针对此数据总结下常用的方法 1,字符串截取,变量[头下标:尾下标],就可以截取相应的字符串,其中下标是从0开始算起,可以是正数或负数,下标可以为空表示取到头或尾 ...

随机推荐

  1. Hdu 1525 欧几里得博弈

    两堆石子每次可以在大堆中取小堆的倍数个石子 第一个拿光某个堆的玩家赢 假设a>=b 必胜状态:a%b==0或a/b>=2 因为当a/b>=2时 当前玩家可以选择将状态转移至 a%b+ ...

  2. Layui 监听 复选框 提交表单

    表单数据这一块 layui 做的是真的不好,无论是在渲染还是在交互方面,每次都要自己来重新实现代码 #贴上代码 <!DOCTYPE html> <head> <meta ...

  3. Java WEB框架——SSM迈向M之登录

    1.pom.xml 关于pom.xml,<version>等标签先暂时不谈,<dependency> 的作用主要是添加相应的支持包,比如spring,servlet,jdbc等 ...

  4. Kafka、RabbitMQ、RocketMQ等 消息中间件 介绍和对比

    文章目录 1.前言 2.概念 2.1.MQ简介 2.2.MQ特点 2.2.1.先进先出 2.2.2.发布订阅 2.2.3.持久化 2.2.4.分布式 3.消息中间件性能究竟哪家强? 3.1.Kafka ...

  5. python 文件操作的相对路径和绝对路径(windows)

    1.相对路径 windows  '.\'表示当前路径 with open(r'.\db\123.txt','w',encoding='utf-8') as f: f.write('abc') 2.绝对 ...

  6. Spring 初探(二) AOP 图集

    Spring AOP属于第二代AOP.采用Java作为AOP的实现语言(AOL),采用动态代理机制和字节码生成技术实现. 代理设计模式 ISubject 对被访问者或者被访问资源的抽象,某些场景下不使 ...

  7. [Python之路] 日志操作

    使用logging模块来写日志 日志直接输出到准备输出 import logging logging.basicConfig(level=logging.WARNING, format="% ...

  8. Ubuntu中安装MySQL

    基本步骤: 1. sudo apt-get install mysql-server 2. apt-get install mysql-client 3.  sudo apt-get install ...

  9. 使用Python画一朵玫瑰花

    # -*- coding: utf-8 -*- # @Time : 18-9-14 下午12:47 # @Author : Felix Wang from turtle import * import ...

  10. 实现类数组转化成数组(DOM 操作获得的返回元素值是一个类数组)

    目标 实现类数组转化成数组 实例 链接地址 使用方法 const foo = document.querySelectorAll('.result') //链接地址输入控制台输入这行代码 const ...