1.在C语言中,是将字符串作为字符数组来处理的,字符串是逐个存放到数组元素中的

例如用一个一维的字符数组存放字符串"I am a boy.",如下代码:
char c[12] = {'I','a','m','a','b','o','y','.'};
这个字符串的实际长度是11,数组长度是12,实际工作中,人们关心的往往是字符串的有效长度而不是字符串的数组长度,例如要打印字符串,这是就要知道字符串的实际长度。平时常使用下面三种方式来测定字符串的实际长度:

(1)在串值后面加一个不计入长度的结束标记字符,比如'0'来表示串值的终结
初始化一个字符串的方法如下,在最后添加'0'
char str[] = {'I','a','m','h','a','p','p','y','0'};
也可以直接使用字符串常量初始化字符数组(系统自动加上'0'),这种方法符合人们的习惯。
char str[] = "I am happy";
或者
char str[] = {"I am happy"};注意:不能使用下面的赋值方式:
char str[20];
str = "I am happy";
但可以用字符指针指向这个字符串:
char *str;
str = "I love China";
(2)将实际串长度值保存在数组0的下标下
#define MAXSIZE 20 //数组的长度
typdef char String[MAXSIZE+1];
初始化字符串的方法:
String t;
StrAssign(t,"I am happy");
int StrAssign(String T,char *chars)
{
T[0] = strlen(chars); //下标为0存放数组长度
for(i=1;i<=strlen(chars);i++) //下标位置从1开始存放数据
{
T[i] = *(chars+i-1);
}
return 1;
}
(3)使用结构体类型(自定义类型)
#define MAXSIZE 20
typedef struct{
char ch[MAXSIZE];
int len;
}String;
其中:MAXSIZE表示串的最大长度,ch是存储字符串的一维数组,len是字符串的长度
初始化函数示例:
String t;
StrAssign(&t,"I am happy");
int StrAssign(String *t,char *chars)
{
int i;
if(strlen(chars)>MAXSIZE+1) //字符串的长度大于数组的长度,操作失败,返回0
return 0;
for(i=0;i<strlen(chars);i++)
{
t->ch[i] = *(chars+i);
}
t->len = strlen(chars); //数组的长度
return 1; //返回1,操作成功
}说明:这里的StrAssign函数的参数t使用的是指针,是因为结构体变量做做形参,用法和普通变量一样属于值传递方式,在子函数中要给t赋值,所以输入的是t的指针。与之对比的是(2)子函数中T是数组,传入的是数组的首地址(改变形参也就改变了实参)。

android 数组赋值字符串_C语言奇淫技巧,字符串的三种表示方法,不会用不是合格的程序员...相关推荐

  1. 字符串反转(把一个字符串按相反的顺序输出)的三种简单方法

    第一种方式-思路:通过使用 String.toCharArray()转换成char数组,倒叙循环遍历该数组即可 public static void fz() {//思路:通过控制台输入一个字符串,/ ...

  2. 冒泡法排序函数c语言,【C语言】冒泡法排序的三种实现方法

    冒泡法的三种排序方法: 1.数组排序 #include//#includeint main() { int i; int j; int tmp; int arr[8] = { 1, 3, 5, 7, ...

  3. 50个Pandas的奇淫技巧:向量化字符串,玩转文本处理

    大家好,我是小伍哥. 数据处理,也是风控非常重要的一个环节,甚至说是模型成败的关键环节.因此,娴熟简洁的数据处理技巧,是提高建模效率和建模质量的必要能力.这里开个专题,总结下Pandas的使用方法,方 ...

  4. 输入n个字符串字典序排序_30个Python奇淫技巧集

    今天小编熬夜整理了一份,内容是基础篇覆盖了字符串,列表,字典和基础序列容器.不要小看青铜篇,这份资料里面收集了很多奇淫技巧,很多小编也是第一次遇到,非常值得收藏. 下面我挑选几个给大家看一下,小编觉得 ...

  5. 【算法练习】80.字符串轮转——奇淫技巧

    [算法练习]80.字符串轮转--奇淫技巧 ⭐加入组队刷题,每日一题,每天进步⭐ 看完大家的操作,感觉自己太傻了 --leetcode此题热评 前言 哈喽,大家好,我是一条. 糊涂算法,难得糊涂 点击跳 ...

  6. c语言字符数组赋值超过,C语言字符数组赋值

    C语言字符数组赋值教程 C语言字符数组赋值详解 语法 arr[index] = value; 参数 参数 描述 arr 数组名. index 需要赋值的下标索引. value 需要设置的值. 说明 给 ...

  7. JavaScript:探索神秘的旁门左道奇淫技巧

    引言: JavaScript作为一种广泛使用的编程语言,具有出色的灵活性和强大的功能.除了其常规用途外,它还隐藏着一些奇淫技巧,这些技巧可以让你在编程过程中事半功倍.本文将揭示JavaScript的一 ...

  8. JS高端奇淫技巧(持续更新)

    众所周知, JavaScript是一门很骚的语言, 写一句话有很多种表达方式, 语法怪异而风骚, 自由而散漫, 或许这就是JS成为最流行语言的原因吧. 本文收集了JS开发中常用的各种奇淫技巧, 一句话 ...

  9. 前端js奇淫技巧(一)

    很多前端只会谢谢页面,一让他们接触js,就非常害怕. 我想有的东西,你越害怕,就越要了解它,读懂它,就会发现它还有你不知道的那一面美好. 好的,直入主题,直接说说js相关的一些奇淫技巧. 一.运算相关 ...

最新文章

  1. 微信小程序wx:for 的使用
  2. Jmeter-jtl性能测试报告转换-2种导出方法
  3. Spring 源码讲解:bean 的创建流程 - 公开课笔记
  4. 卸载失败_Windows 10可能的新功能-自动卸载失败的补丁更新
  5. Linux搜索无线网络命令,Linux操作系统的无线网络命令
  6. .net类库学习(一)System.object
  7. 一个透明的shader
  8. 鸿蒙系统什么时候超过苹果,为何任正非说鸿蒙系统想超过苹果系统需要的时间,不会超过300年...
  9. STM32——时钟系统
  10. mysql数值类型占用字节及范围_mysql数据类型及占用字节数【mysql】
  11. 添加Silverlight应用到HTML
  12. MonoTouch 二三事(三)mono mkbundle 打包程序的解包支持
  13. 2019 ICPC中国邀请赛(南昌)暨国际丝绸之路程序设计竞赛-网络赛题解
  14. 【Coursera】DNS加速器
  15. 5000预算组装台式机配置清单
  16. 如何将word中两栏的A3纸横向排列文档转成标准A4文档
  17. 新手如何从零开始学习Unity3D,这边文章就够了!
  18. 中国科学院计算机所刘夏真,中国科学院大学2015年博士生录取名单公示(55)
  19. TrueLaunchBar 4.2
  20. 计算机常用英语1600,中考英语必备1600个词汇PDF.pdf

热门文章

  1. sqlyog要先安装mysql_MySQL和SQLyog的配置-安装及遇到的问题
  2. (Mybatis)XML配置解析
  3. 数据结构于算法—线性表
  4. 使用python写一个名片管理系统
  5. Spring Cloud(八)使用Zipkin进行分布式链路跟踪
  6. Spring事务的处理流程、传播属性、及部分释疑
  7. hadoop 查看节点主备装填_基于ZooKeeper搭建Hadoop高可用集群
  8. tfs java开发需要jar_使用Spring框架开发最少需要哪些jar包,依赖jar包有哪些?
  9. 必看 | VLAN划分和网络配置实例
  10. 【无标题】12.04 Serverless Meetup 深圳站 | Call 你来参加