复杂数据类型——字符串

字符串数组在C语言中比较重要,学而时习之,这样才能更好的掌握。今天断电,没有保存,让我锻炼了两次~~~~碉堡了

1、字符串

#include <stdio.h>

int mian()

{

//'a' 'b' 'b'  字符

//“jack” = 'j' + 'a' + 'c' + 'k' + '\0' 字符串  有顺序的字符组成的字符串,使用字符数组存储字符串

char name[10] = "jack\n";

printf(name); // 这样输出会警告,printf默认的是字符串常量

return 0;

}

2、字符串存褚细节

      字符串的初始化

#include <stdio.h>

void test()

{

char name[8] = "it";

char name2[8]={'i', 't', '\0'};

char name3[8] = {'i', 't', 0};

//严格来讲下面不算是字符串,属于静态数组,后面默认为0,但是可以当字符串来使用

char name4[8] = {'i', 't'};

//下面就不是字符串

char name5[] = {'i','t'};

}

int mian()

{

char name[] = "itcast"

name[3] = 'H';

printf("我在%s上课\n",name); //输出结果为itcHst

// int  size = sizeof(name);

// printf(”%d\n“,size); //输出结果为7位后面还有一个隐藏字符‘\0’

return 0;

}

3、'\0'的作用

int mian()

{

char name[] = "it";

char name2[] = {'o', 'k'};

//printf("%s\n",name2); //输出为OKIT,因为数组名就输数组地址,所以它会输出数组地址的字符以至于到\0为止

printf("%s\n",&name2[1]");//输出KIT

return 0;

}

4、strlen函数 : 计算字符串长度的函数,计算的是字符数,不包括\0。一个汉子占据三个字节的长度,相当于三个字符

#include <stdio.h>

#include <string.h>

int mian()

{

// int size  = strlen("哈haha");

// printf("%d\n",size);

char name[] = "itcast";

char name2[] ={'0', '6'};

int size = strlen(name2);

printf("%d\n",size);

return 0;

}

5、练习

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

int char_contains(char str[], char c);

int main()

{

int result = char_contains("itcast",'t');


printf("%d\n",result);


return 0;

}

int char_contains(char str[], char c)

{

//便历整个字符串

for(int i = 0; i <strlen(str); i++)

{     //如果发现某个字符等于参数C,直接返回1,退出函数

if(str[i] == c )

{

return 1;

}

}

return 0; //代码来到这里,说明里面不包含字符C

}

第二种实现方法:

int char_contains(char str[], char c)

{

int i = 0;

//便历整个字符串

while( str[i] != '\0' )  //  while( str[i] ) 

{

if(str[i] == c )

{

return 1;

}

i++;

}

return 0; //代码来到这里,说明里面不包含字符C

}

第三种方法:

int char_contains(char str[], char c)

{

int i = -1;

//便历整个字符串

while( str[++i] != c && str[i] != '\0' )  ;

return str[i] == '\0' ? 0:1;  // return str[i] != '\0'; 这样也可以的,多种思路,自己分析。

}

6、字符串数组

char name[] = "jack";  // 利用数组存储了字符串

//char name2[2][8] = {"jack", "rose"} //字符串数组

char name2[2][8] = 

{‘j’, 'a', 'c', 'k','\0'},

{'r', 'o', 's', 'e','\0'}

};


  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值