《黑马程序员》 字符串 (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;
}

 

郑重声明:本站内容如果来自互联网及其他传播媒体,其版权均属原媒体及文章作者所有。转载目的在于传递更多信息及用于网络分享,并不代表本站赞同其观点和对其真实性负责,也不构成任何其他建议。