《黑马程序员》 字符串 (C语言)
字符串的基本使用
定义方法:
char name[10] ="jack"; 此时字符串中共包含‘j’,’a‘,‘c‘,‘k‘,‘\0‘
中括号中的10代表该字符串最多存放10个字符
字符串的输出
1.printf("jack");
2.printf(name); //把数组传入printf语句输出会出现警告
这两种方法输出结果相同,但printf语句默认情况下只认字符串常量,所以第二种方法在编译时会出现警告。
字符串的存储细节:
数组name中共占用8个字节,含有三个元素分别为‘i‘,‘t‘,‘\0‘
char name[8] ="it";
char name2[8] = {‘i‘,‘t‘,‘\0‘};
char name3[8] = {‘i‘,‘t‘,0};
三种写法效果相同
注:因’\0‘的ASCII值为0,故’\0‘与0等价
修改数组内元素的值
name[1] = ‘q‘; //把数组内第2个元素的值改为q;
\0的作用
\0为字符串的结束标志
#include <stdio.h> int main() { char name[] ="it"; char name2[] ={‘o‘,‘k‘}; printf("%s\n",name2); return 0; }
运行结果:okit
数据内存如下所示
strlen函数
作用:用来计算字符串的长度,strlen函数声明在<string.h>文件中,计算的是字符数并不是字数,计算的字符不包括尾部的"\0"
#include <stdio.h> #include <string.h> int main() { char name[] ="haha"; //定义一个字符串数组 int size1 =strlen(name); //计算字符串的长度 不包含"\0" int size2 =sizeof(name); //计算字符串的占用字节数,包含"\0" printf("%d\t%d\n",size1,size2); //输出 return 0; }
运行结果:4 5
代码练习1:
#include<stdio.h> //字符串数组 int main() { //一维数组 char name[] ="haha"; char name1[] ="rose"; char name2[] ="jim"; char name3[] ="jake"; //二维数组 //第一种方法 char name[2][10] = {"jake","rose"}; //第二种方法 char name[2][10] = { {‘j‘,‘a‘,‘k‘,‘e‘,‘\0‘}; {‘r‘,‘o‘,‘s‘,‘e‘,‘\0‘}; }; return 0; }
代码练习2:
#include <stdio.h> #include <string.h> /*编写一个函数char_contains(char str[],char c),如果字符串中str中包含字符C, 则返回数值1,否则返回数值0. */ int char_contains(char str[],char c) { int i; //遍历数组内所有元素,检测数组内是否包含字符C for(i = 0;i < strlen(str);i++){ if(str[i] ==c){ //返回数值1 return 1; } } return 0; } int main() { char str[]="itcast"; int result = char_contains(str,‘c‘); printf("%d\n",result); return 0; }
郑重声明:本站内容如果来自互联网及其他传播媒体,其版权均属原媒体及文章作者所有。转载目的在于传递更多信息及用于网络分享,并不代表本站赞同其观点和对其真实性负责,也不构成任何其他建议。