字符串数组在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'}
};