c语言入门:[18]字符串初探

操作方法

  • 01

    以前我们学习中只重点使用了整型数据、浮点数据和字符数据,今天我们介绍另一种数据字符串,从名字上你就可以知道字符串是由若干个字符串联起来组成的,在c语言里字符串要用双引号引上例如 "abc"  "23#sdf" "你好" 都是字符串。 其实下面这段代码在逻辑上没什么意义,但你在编译器上运行不会报错,这说明字符串是c语言可以处理的一种数据类型。 int main() { "abc123"; } 如果我们把 "abc123"看成是一个密码,那我们需要把它先存起来,用什么存呢?整数用int型变量来存,浮点数用float型变量来存,字符用char型变量来存,但c语言里没有字符串型,所以我们还得把字符串分解,因为字符串是由若干个字符组成的所以我们用字符数组来存储字符串里的每个字符。 现在我们把 "abc123" 存起来 char a[6]; a[0]='a'; a[1]='b'; a[2]='c'; a[3]='1'; a[4]='2'; a[5]='3'; 上面这种写法实在是太麻烦了,所以c语言提供了一种给数组初始化的简单形式,这里所说的初始化就是在定义的时候就给数组里的元素赋上初始的值。 char a[6]={'a','b','c','1','2','3'}; 这是一种通用的给数组初始化的方法,其它类型数组也同样适用,例如 int a[3]={1,3,56};  float a[5]={1.4,3.45,4546,78.9,0} 记住定义和赋初始值一定是写在一起才表示初始化,绝不代表数组里的变量能一起操作,例如下面的写法就是错误的; int a[3]; a={1,2,56};//这里不是初始化,因为a数组已经定义完了,c语言环境会认为这是一个赋值运算,你能给a[0]、a[1]和a[2]赋值但确不能给a赋值,数组里的元素不能一起操作因为他们是三个变量。 特殊的在c语言里支持直接使用字符串初始化。 char a[7]= "abc123"; 这种初始化方式,数组的长度要多一位,因为系统默认会在字符串的尾巴上加上一个结束符'',多出的一位就是存储这个结束符号的,这个结束符的作用就是用来标识字符串的结尾,一会我们讲的puts函数就使用了这个结束符。这里再强调一遍下面这样写是错误的。 char a[7]; a= "abc123"; //这里不是初始化 数组的初始化我们就先讲到这里。上节结尾我们讲到了可以利用循环来给数组里的元素从键盘赋值当然也可以利用循环输出数组里的每个元素,为了输入输出方便不用每次都写循环我们可以利用gets函数来从键盘读入字符串,利用puts向屏幕输出字符串,请看下面的代码 int main() { char a[100]; printf("请输入密码:"); gets(a);//利用gets把从键盘输入的字符串里的每个字符都存放到a数组里并在最后存储一个结束符'' printf("你输入的密码是:"); puts(a);//利用puts把a数组里的每个字符都输出到屏幕上 } 因为我们不知道用户输入多少个字符,又因为那个黑色窗口一行最多也不会超过100个,所以把数组长度定义为100足够了 gets和puts函数的用法很简单,你只需要在小括号里写数组的名字即可。 puts函数是一个一个字符输出遇到结尾标识''就停止输出,例如运行下面的代码你会发现并没有输出@ int main() { char a[100]="abc"; a[5]='@'; puts(a); } 我们可以利用字符串中的''来统计有效字符个数例如 int main() { char a[100]; int i=0;//数组下标 printf("输入一个字符串:"); gets(a); while(a[i]!='\0') { i=i+1; } printf("你输入的字符串中有%d个字符",i); } 解析:挨个访问数组里的字符,如果是''则退出循环,此时i的值是''的下标也正好是数组里有效字符的个数。 留个练习你能完成吗? int main() { char p[7]="abc123"; //正确的密码已经存放在p里 char a[100];//用来存储用户从键盘输入的密码 printf("请输入密码:"); gets(a); /*------------ 在这里加一些代码,能够判断用户输入的密码是否正确 -------------*/ }

(0)

相关推荐

  • C语言如何定义字符串变量

    现在我们来看看,C语言如何定义字符串变量. 操作方法 01 首先,我们定义一个字符数组变量,可以这么写. 02 然后我们输入字符的长度. 03 接下来我们就可以直接赋值字符串. 04 我们也可以定义多 ...

  • c语言怎样截取字符串

    今天小编给大家带来的是c语言怎样截取字符串,希望能帮助到大家! 操作方法 01 直接给大家代码吧: #include<stdio.h> #include<string.h> # ...

  • C语言如何定义字符串

    现在,我们来看看,C语言如何定义字符串. 操作方法 01 首先,我们写入字符关键字. 02 然后哦我们输入一个数组变量. 03 然后我们可以对他进行复制. 04 但是记得输入其结束标志. 05 我们还 ...

  • C语言如何把字符串转为字符数组

    C语言如何把字符串转为字符数组?很多人不知道如何解决,下面我们来看看吧. 操作方法 01 一般来说,函数返回的类型不能是一个地址,所以说,如果你返回一个地址,编译器会给你警告,但是仍然会正确执行. 0 ...

  • 简单vb语言入门做到用电脑说出你想说的话

    简单易懂的vb语言入门,在工作生活中有时一句话要说多遍才能引起注意,既枯燥又影响听者心情,不妨用下面的小方法,使用一个脚本文件在桌面,双击一下就能完成电脑替你说话的想法了.而且用在表白时刻也是不错的选 ...

  • C#语言入门:[15]多分支选择switch语句

    当你的程序做条件判断时,可以用if...else... 但是有一个难题,当你的条件很多时,打个比方说,有个程序要求选择语言,语言中有中文,英语,日语,法语,德语,俄语如果你用if...else..., ...

  • 单片机c语言入门教程

    C语言是编程的基础语言,如何使用C语言呢?小编与大家分享自己的. 操作方法 01 具体编程前保存文件,单击 文件菜单,下拉菜单中选择 保存按钮. 02 输入文件名,文件类型选择为.c类型. 03 首先 ...

  • C语言入门到精通

    C语言是一门通用计算机编程语言,应用广泛.设计目标是提供一种能以简易的方式编译,是一门很实用的编程入门语言,很多小伙伴都想学习C语言,却迫于无赖,找不到好的方法,那我就给大家讲讲我的吧,希望我的绵薄之 ...

  • C语言入门基础

    这篇文章简单介绍C语言,以及其入门所需要学习的几个方面.以及一个最简单的入门让你程序. 操作方法 01 1.C语言,属于一种高级计算机语言,按语言分类的话,它区别于机器语言,以及汇编语言. 02 2. ...