创建方式

  • 字符数组:空间已定
  • 字符指针:未分配空间

初始化

  • 字符数组:

    • 创建与赋值必须在同一行
    • 指定大小:未填满部分用'\0'填充
    • 用字符串初始化:末尾自动添加'\0'
    • 不初始化赋值则乱值
  • 字符指针:
    • 创建与赋值可以不在同一行
    • 未分配空间,故不可直接gets(str)

相关函数

  1. strlen():字符串大小

    • strlen(charArray):忽略字符数组中的'\0'
  2. sizeof():类型大小
    • sizeof(charArray):数组元素个数,'\0'也算
    • sizeof(charPointer):指针字节数 == 8
  3. strcmp():字符串比较
    • strlen(charArray, ...):只比较内容,字符数组中可以无'\0'
  4. strcpy():字符串赋值
    • strcpy(str1, str2):把str2内容赋给str1
  5. strtok():字符串切分
    • strtok(str1, char* tag):将str1按tag划分
    • 示例代码
#include<stdio.h>
#include<string.h> int main()
{
char str[100];
char strs[100][100];
int i,n=0;
gets(str);
/*遍历方式*/
char* p = strtok(str, " ");
while(p)
{
strcpy(strs[n++], p);
p = strtok(NULL, " ");
}
for(i = 0; i < n; i++)
printf("%s\n",strs[i]);
}
#include<stdio.h>
#include<string.h>
int main()
{
char a[] = {'a','b','c'};
char *b ;
char c[] = {'a','b','c','\0'};
b = "abc";
int i,j;
printf("%d\n", strlen(a));
printf("%d\n", strlen(b));
printf("%d\n\n", strlen(c)); printf("%d\n", sizeof(a));
printf("%d\n", sizeof(b));
printf("%d\n", sizeof(c));
printf("%d\n\n", strcmp(a,c)); for(i = 0; i < strlen(b); i++)
printf("%c ", b[i]);
}

C语言string操作的更多相关文章

  1. go语言文件操作,这期资料比较详细( 欢迎加入go语言群: 218160862 )

    go语言文件操作,这期资料比较详细 欢迎加入go语言群: go语言深圳群 golang深圳 218160862 点击加入 文件操作 func Open(name string) (file *File ...

  2. C语言字符串操作总结大全(超详细)

    本篇文章是对C语言字符串操作进行了详细的总结分析,需要的朋友参考下 1)字符串操作  strcpy(p, p1) 复制字符串  strncpy(p, p1, n) 复制指定长度字符串  strcat( ...

  3. C语言字符串操作常用库函数

    C语言字符串操作常用库函数 *********************************************************************************** 函数 ...

  4. c语言字符串操作大全

     C语言字符串操作函数 函数名: strcpy 功  能: 拷贝一个字符串到另一个 用  法: char *stpcpy(char *destin, char *source); 程序例: #incl ...

  5. 转:C语言字符串操作函数 - strcpy、strcmp、strcat、反转、回文

    转自:C语言字符串操作函数 - strcpy.strcmp.strcat.反转.回文 C++常用库函数atoi,itoa,strcpy,strcmp的实现 作者:jcsu C语言字符串操作函数 1. ...

  6. C 语言文件操作

    C 语言文件操作 1. 数据流:     程序与数据的交互以流的形式进行.fopen 即打开数据流,fclose 即刷新数据流.     所谓数据流,是一种抽象,表示这段数据像流一样,需要逐步接收,不 ...

  7. C语言IO操作总结

    C语言IO操作总结C程序将输入看做字节流,流的来源是文件.输入设备.或者另一程序的输入:C程序将输出也看做字节流:流的目的是文件.视频显示等: 文件处理:1 :fopen("filename ...

  8. C语言指针操作

    欢迎访问我的新博客:http://www.milkcu.com/blog/ 原文地址:http://www.milkcu.com/blog/archives/pointer-manipulation. ...

  9. C语言字符串操作函数 - strcpy、strcmp、strcat、反转、回文

    原文:http://www.cnblogs.com/JCSU/articles/1305401.html C语言字符串操作函数 1. 字符串反转 - strRev2. 字符串复制 - strcpy3. ...

随机推荐

  1. 关于ai算法的一个点子

    长久以来,一直想要有自己的原生算法. 今天灵感图然来了: 想到, 一个事务不但要看它本身,也要看欣赏它的人. 要研究两个方面. 你要研究音乐,也要研究欣赏音乐的人. 人之所以会欣赏音乐,而牛不可以(对 ...

  2. Oracle—数据库名、数据库实例名、数据库域名、数据库服务名的区别

    Oracle-数据库名.数据库实例名.数据库域名.数据库服务名的区别 一.数据库名 1.什么是数据库名       数据库名就是一个数据库的标识,就像人的身份证号一样.他用参数DB_NAME表示,如果 ...

  3. Linux基础命令---mysqladmin数据库管理工具

    mysqladmin mysqladmin是mysql数据库的管理工具,可以控制.查看.修改数据库服务器的配置和状态. 此命令的适用范围:RedHat.RHEL.Ubuntu.CentOS.Fedor ...

  4. zabbix之监控 io

    #:编写监控脚本 root@ubuntu:/etc/zabbix/zabbix_agentd.conf.d# vim iotop_total.sh #!/bin/bash #Date: 2016/11 ...

  5. 'this' pointer in C++

    The 'this' pointer is passed as a hidden argument to all nonstatic member function calls and is avai ...

  6. ES6常用的数值转换方法

    <script type="text/javascript"> // Number常用方法 /* Number.isFinite() 用来检查一个数值是否为有限的(fi ...

  7. 对于React各种状态管理器的解读

    首先我们要先知道什么是状态管理器,这玩意是干啥的? 当我们在多个页面中使用到了相同的属性时就可以用到状态管理器,将这些状态存到外部的一个单独的文件中,不管在什么时候想使用都可以很方便的获取. reac ...

  8. R数据分析:变量间的非线性关系,多项式,样条回归和可加模型

    之前的文章中都是给大家写的变量间线性关系的做法,包括回归和广义线性回归,变量间的非线性关系其实是很常见的,今天给大家写写如何拟合论文中常见的非线性关系.包括多项式回归Polynomial regres ...

  9. 程序员Meme 第00期

  10. 通过Docker部署Java项目的日志输出到宿主机指定目录

    之前写过2篇关于Docker部署的文章: 1.超!超!超简单,Linux安装Docker 2.Docker通过阿里云镜像仓库使用Gitlab_CI部署SpringBoot项目 用上篇博客部署Java程 ...