李洪强-C语言2-字符串
C语言字符串
一、字符串基础
注意:字符串一定以\0结尾。
Printf(“yang\n”);
其中yang为字符串常量,“yang”=‘y’+‘a’+‘n’+‘g’+‘\0’。字符串由很多的字符组成,通常使用字符数组来存储字符串,如char name[10]=“yang”;也可以以printf(name);的形式输出,即通过数组来访问字符串,但会有警告。因为默认情况下,printf函数只接受字符串常量作为参数(对变量并未写明)。
字符串的三种写法:
- Char name[8]=“yang”;//数组占用了8个字节的存储空间,但是只含有5个字符。
- Char name[8]={‘y’+‘a’+‘n’+‘g’+‘\o’};
- Char name[8]={‘y’+‘a’+‘n’+‘g’+‘0’};
这三种写法在内存中的表现都是一样的。

Char name[]={‘y’+‘a’};前面不写个数,不是一个字符串,只能说是一个普通的字符数组。
char name[]=“yang”;
Name[1]=‘o’;把字符串的第二个元素值由a改成o。
二、字符串使用注意点
(1)分析代码,了解\0的作用。
Char name[]=“yang”;
Char name2[]={‘o’+‘k’};
Printf(“name2=%s”,name2);
%s:根据右边的参数,打印字符串(遇到\0为止)
上面代码的打印结果为:okyang
下面是内存情况分析:

问1:Char name[]=“y\0ng”;则打印结果为什么?(oky)
问2:此时打印name的值,使用%s是多少?Y\0ng还是y?
(2)Strlen函数
Strlen函数计算字符串的长度(字符数)但不包括\0,是字符数不是字数。比如一个汉字占三个字符。
Strlen(“haha”);//长度为4
Strlen(“哈haha”);//长度为7而不是5
设
char name[]=“it\0cast”;
Strlen(name);值为2,因为strlen从字符串的地址开始计算,直到遇到\0为止。
假设
Char name[]=“itcast”;
Char name2[]={‘o’+‘k’};
Int size=strlen(name);
此时size的值为8。
(3)练习,编写一个函数char_contains(char str[],char c),如果字符串中包含字符c,则返回1,否则返回0。
Int char_contains(char str[],char c)
{
//遍历整个字符串
For(int i=0,i<strlen(str);i++)
{
If(str[i]==c)
Return 1;
}
Return 0;
}
//调用语句
Int result=char_contains(“yang”,‘a’);
//使用while循环
①. While(i<strlen(str))
②. While(str[i]!=‘\0’)
③. While(str[i])
④. Int i=-1;while(str[i++])
三、字符串数组
二维字符数组,存储两个字符串数组,每个的长度为1,下面是两种写法但存储情况是一样的。
Char name[2][10]={“jack”,“rose”};
Char name2[2][10]={
{‘j’+‘a’+‘c’+‘k’+‘\0’},
{‘r’+‘o’+‘s’+‘e’+‘\0’}
}
把rose输出:printf(“%s”,name2[1]);
输出k:printf(“%c”,name2[0][3]);
李洪强-C语言2-字符串的更多相关文章
- 李洪强-C语言关键字、标识符和注释
一.关键字 C语言提供的有特殊含义的符号,共32个. 在Xcode中关键字全部高亮显示,关键字全部都为小写.如return.int等. 二.标识符 定义:标识符是程序员在程序中自定义的一些符号和名称. ...
- 李洪强-C语言9-C语言的数据,变量和常量
一.数据 图片文字等都是数据,在计算机中以0和1存储. (一)分类 数据分为静态数据和动态数据. ①. 静态数据:一些永久性的的数据,一般存储在硬盘中,只要硬盘没坏数据都是存在的.一般以文件的形式存储 ...
- 李洪强-C语言4-内存分析
C语言内存分析 一.进制 概念:进制是一种计数方式,是数值的表现形式 4种主要的进制: ①. 十进制:0~9 ②. 二进制:0和1 ③. 八进制:0~7 ④. 十六进制:0~9+a b c d e f ...
- 李洪强-C语言1-指针
C语言指针 前导程序 一.基本知识点 Int a=10; Int *p;//定义一个int类型的指针 P=&a;//指针变量p指向了变量a *p=20;//使用指针不通过变量直接修改变量a ...
- 李洪强 - C语言8-Scanf函数
C语言的scanf函数 一.变量的内存分析 (一)字节与地址 ①. 内存以字节为单位 每个字节都有自己的内存地址,根据地址就可以找到该字节.整个内存相当于一整个酒店,而酒店以房间为单位,在这里每个房间 ...
- 李洪强-C语言7-C语言运算符
C语言运算符 一.算术运算 C语言一共有34种运算符,包括常见的加减乘除运算. ①. 加法:+ 还可以表示正号 ②. 减法:- 还可以表示负号 ③. 乘法:* 非数学意义上的X ④. 除法:/ 注意 ...
- 李洪强-C语言6-控制结构
C语言流程控制 一.流程控制结构 (1)顺序结构:按书写顺序执行每一条语句. (2)选择结构:对给定的条件进行判断,根据判断结果决定执行哪一段代码. (3)循环结构:在给定条件成立的情况下,反复执行某 ...
- 李洪强-C语言5-函数
C语言函数 一.函数 C语言程序是由函数构成的,每个函数负责完成一部分的功能,函数将工恩呢该封装起来,以供程序调用. 二.函数定义 目的:将一些常用的功能封装起来,以供日后调用. 步骤:确定函数名,确 ...
- 李洪强-C语言3-数组
一.数组的概念 用来存储一组数据的构造数据类型 特点:只能存放一种类型的数据,如全部是int型或者全部是char型,数组里的数据成为元素. 二.数组的定义 格式: 类型 数组名[元素个数]: 举例:存 ...
随机推荐
- poj 1664
http://poj.org/problem?id=1664 题目是中文的,一个递归的题目 把每一次的苹果分为两类 Ⅰ:所以盘子都放一个,然后其他的在随便放: Ⅱ:有一个盘子没有放苹果: 这样下去的话 ...
- scp失效问题
1.症状 (1)登陆到服务器A(已在本机用ssh-add, ssh -A),scp 到服务器B时提示public key有问题: (2)/tmp/下没有ssh-XXX目录 2.原因 服务器A被pupp ...
- 【转】打造属于自己的Android Studio神器
本文转载自:http://www.stormzhang.com/android/2015/05/26/android-tools/,并加以修改.黄色底部分是本人添加的内容. 一晃好久没更新博客了,最近 ...
- TinyMCE textarea 输入框外部程序动态修改方法
TinyMCE textarea 输入框外部程序动态修改方法 Public Function C2IE_TINYMCE(ByVal id As String, ByVal value As Strin ...
- java代码获取jdbc链接properties
public static String getDirPath() { Resource resource = null; Properties props = null; String driver ...
- PHP--TP框架----操作数据库
//操作数据库 //$attr = $m->select(); //查询所有数据 //$attr = $m->s ...
- GCD的基本使用
// // ViewController.m // gcd队列与函数 // // Created by 诠释 on 15/9/3. // Copyright (c) 2015年 诠释. All rig ...
- 配置hadoop-1.2.1出现localhost: Error: JAVA_HOME is not set.
配置hadoop-1.2.1出现localhost: Error: JAVA_HOME is not set. 具体为: hadoop@dy-virtual-machine:~/hadoop-1.2. ...
- Tomcat JMX
http://tomcat.apache.org/tomcat-6.0-doc/monitoring.html#Enabling_JMX_Remote
- Ubuntu下自动挂载分区
参考文章:http://feierky.iteye.com/blog/1998602 1.查看分区的UUID sudo blkid /dev/sda1: UUID="3526b254-390 ...