黑马程序员——c语言的字符串

1、 字符串

1. 什么是字符串

● 简单的字符串”itcast”

● 一个’i’是一个字符

● 很多个字符组合在一起就是字符串了

2. 字符串的初始化

● char a[] = “123”;  和 char a [] = {‘1’,’2’,’3’};的区别,可以比较大小

● “123”其实是由’1’、’2’、’3’、’\0’组成

● “123”的存储分布

● 字符串的输出”%s”,’\0’是不会输出的

3. \0的作用

● 输出char a[] = {‘o’,’k’};

● 在char a[]前面搞个”mj”

● 输出”mj”

● 再输出a

● char a[] = {‘i’,’t’,’\0’,’c’};

4. 常用字符串处理函数

● strlen(注意中文)

2. 习题

编写一个函数char_contains(char str[],char c),如果字符串str中包含字符c则返回数值1,否则返回数值0

 1 #include <string.h>
 2 #include <stdio.h>
 3
 4 // 可读性 -> 性能 -> 精简(重构)
 5
 6 int char_contains(char str[], char c);
 7
 8 int main()
 9 {
10     char name[] = "itcast";
11
12     int result = char_contains(name, ‘c‘);
13
14     printf("%d\n", result);
15     return 0;
16 }
17
18 // "itc"  ‘7‘
19 int char_contains(char str[], char c)
20 {
21     int i = -1;
22
23     // 1.遍历整个字符串
24     while ( str[++i] != c && str[i] != ‘\0‘ ) ;
25
26     //return str[i] == ‘\0‘ ? 0 : 1;
27     return str[i] != ‘\0‘;
28 }

字符串数组

1.使用场合

* 一维字符数组中存放一个字符串,比如一个名字char name[20] = "mj"

* 如果要存储多个字符串,比如一个班所有学生的名字,则需要二维字符数组,char names[15][20]可以存放15个学生的姓名(假设姓名不超过20字符)

* 如果要存储两个班的学生姓名,那么可以用三维字符数组char names[2][15][20]

2.初始化

char names[2][10] = { {‘J‘,‘a‘,‘y‘,‘\0‘}, {‘J‘,‘i‘,‘m‘,‘\0‘} };

char names2[2][10] = { {"Jay"}, {"Jim"} };

char names3[2][10] = { "Jay", "Jim" };

 1 #include <stdio.h>
 2 int main()
 3 {
 4     char name[] = "jack";
 5
 6     char name1[] = "rose";
 7
 8     char name2[] = "jim";
 9
10     char name3[] = "jake";
11
12     char names[2][10]= {"jack", "rose"};
13
14     printf("%s\n", names[0]);
15
16     printf("%c\n", names[0][3]);
17
18     char names2[2][10] =
19     {
20         {‘j‘, ‘a‘, ‘c‘, ‘k‘, ‘\0‘},
21         {‘r‘, ‘o‘, ‘s‘, ‘t‘, ‘\0‘}
22     };
23
24
25     return 0;
26 }
时间: 2024-10-01 05:15:56

黑马程序员——c语言的字符串的相关文章

黑马程序员——C语言小节------字符串与指针

------Java培训.Android培训.iOS培训..Net培训.期待与您交流! ------- 1.字符串的初始化,字符串必须以"\0"结尾,"\0"的ASCII码值为0,例如: char name[] = "jack"; // "jack" == 'j'+'a'+'c'+'k'+'\0' // 都是字符串 char name[8] = "it"; char name2[8] = {'i', 't'

黑马程序员-C语言基础:指针类型与指针和数组、字符串的关系

//指针变量就是用来存储地址的,只能存储地址 格式:  int  *p;  这个p为指针变量:指针变量占8个字节 类型是用来说明这个指针指向的类型: 比如上边的int代表这个指针变量会指向int类型的存储空间: int *p = &a;//这样一句可以写,此时的*只是一个标志,表示这个*只是表示p是个指针: *p = &a;//这样写就错了:此时*p表示取p指向的空间的值: 指针疑问:指针既然都占据8个字节,那么为什么要划分类型, 是因为当用*p指针取值或者赋值的时候,知道该取几个字节,比

黑马程序员-C语言基础:数组和字符串

数组:数组的定义注意点 数组初始化正确写法: int args[5] = {1,23,32,4,5}; int args[5] = {12,23}; int args[5] = {[3]=23, [4]=13};//这种写法也可以,直接给其中角标为3和4的赋值 int args[] = {12,23,32};//中括号中没写数组大小,在大括号中一定要写具体数值 int args['A'] = {2,34,5}; 错误写法: int args[];//这样编译器不知道给你开辟多大的内存空间 int

黑马程序员_C语言总结-基础部分

C语言基础 1.C语言的关键字 1>关键字就是C语言提供的有特殊含义的符号,也称为保留字,C语言中一共有32个关键字,这些关键字都有自己的含义 例如:int double float if  else switch for 等等 2.标示符的概念: 1>标示符就是在程序中自定义的一些名称,比如函数名,变量名,结构体名等等这些都是标示符 2>命名规则: 1>只能由英文字母的大小写和数字以及_下划线组成,且首字母必须为字母或者下划线_ 2>在C语言中是严格区分大小写的,比如if是

黑马程序员_OC语言前期准备

OC语言前期准备 一.OC简介 Oc语言在c语言的基础上,增加了一层最小的面向对象语法,完全兼容C语言,在OC代码中,可以混用c,甚至是c++代码. 可以使用OC开发mac osx平台和ios平台的应用程序. 拓展名:c语言-.c  OC语言.-m  兼容C++.-mm 注:其实c语言和oc甚至任何一门语言都只是我们为了实现一些功能,达到一些效果而采用的工具,抛开语法的差别外,我想最重要的应该是在解决问题的时候考虑的角度和方法不一样而已,然而这也构成了学习一门语言的重要性. 二.语法预览 (一)

黑马程序员——c语言学习心得——函数传递二维数组

黑马程序员——c语言学习心得——函数传递二维数组 -------Java培训.Android培训.iOS培训..Net培训.期待与您交流! ------- 一.定义指针的时候一定要初始化.   变量定义的时候给变量初始化,这是保证不出错的一个很好的习惯.尤其是在指针的使用上,如果我们没有给指针初始化,就会出现野指针,该指针的指向并不是我们所希望的,一旦错误的释放了这个指针,就会发生内存的访问.那么如何初始化指针变量呢,一般有以下几种方法:   1.初始化空指针   int* pInteger=N

黑马程序员-c语言基础:各种数据类型的输出占位符

c语言中的输出操作相对java来说是比较麻烦的,每种数据类型的输出都有各自的占位符: 下面是各种数据类型的输出占位符: short/int : %d int a = 1; printf("这个整数是:%d", a); long: %ld; (long 是int得修饰,不能算是一种单独的数据类型,只是比int多了四个字节的存储空间) long long: %lld char : %c float/double : %f  float默认是6位小数输出:可以在%f中控制:例如:%.2f:输

黑马程序员-c语言关于二进制的输出

c语言中的二进制输出是没有占位符的,不像八进制:%o: 和十六进制:x%: c中二进制的输出 1 //右移31位,从最高为开始和1做&运算,得到每一位的二进制数值 2 void printbinry(int num) 3 { 4 int count = (sizeof(num)<<3)-1;//值为31 5 while (count>=0) { 6 int bitnum = num>>count; //除去符号位,从最高位开始得到每一位 7 int byte = bi

黑马程序员_01_Java语言基础部分(数据类型与表达式、流程控制语句、数组与方法)

------- android培训.java培训.期待与您交流! ---------- Java语言主要由5中符号组成 标识符:数字.字母.美元符.下划线(注意不能数字开头) 关键字:goto和const保留了它们,但是Java没有使用. 运算符:注意运算符优先级(左结合和右结合要注意) 分隔符:注意+号可以分割字符串. 注释:三种注释. 数据类型与变量 常量: 整型 浮点型 字符:注意后面跟三个八进制(\ddd)和 四位unicode码(\u8bf7) (不区分大小写) 字符串 布尔型 变量: