/*****字符串基本概念******/
#include <stdio.h>
#include <string.h>
int main()
{
char first[4] = {'l','m','\0'};//定义字符串 注意别忘了给字符串分配大小
char second[9] = "你好lm";//定义字符串的另一种形式
char third[] = {'x','f','\0'};//这个不是字符串,但是是一个简单的字符数组
char four[] = "asc\0df";
char arr[2][10] = { //二维数组的定义和输出
{'a','b','c','\0'},
{'d','e','l','\0'}
};
// char arr[2][10] = {
// "abcde",
// "dfdsfdsf"
// };
int size1 = sizeof(second);//计算字节数,一个汉字有3个字节数。'\0'也计算进去
int size2 = strlen(second);//计算除了‘\0’的字节数。
int size3 = sizeof(four);//计算全部的字节数
int size4 = strlen(four);//以'\0'来作为结束标志,且不把’\0‘计算进去
printf("%s \n",first);
printf("%s\n",second);
//数组的输出是以当前数组地址为起点,直到‘\0‘才结束。所以如果字符数组如果没有分配'\0'的话
//它会继续输出其他的数组。
printf("%s\n",third);
printf("%c\n",four[2]);
printf("%d\n",size1);
printf("%d\n",size2);
printf("%d\n",size3);
printf("%d\n",size4);
printf("ssssss\n");
for(int i=0; i<2; i++){
printf("***\n");
for(int j=0;j<strlen(arr[i]);j++){
printf("%c\n",arr[i][j]);
}
}
return 0;
}
/****练习******/
#include <stdio.h>
#include <string.h>
int char_contains(char str[],char c)//需要定义在main函数前面
{
int len = strlen(str);
for (int i=0; i<len; i++)
{
if (str[i] == c)
{
printf("1\n");
}
else {
printf("0\n");
}
}
return 0;
}
void char_contains2(char str[],char c)
{
int i = 0;
while( str[i] ) {//如果字符不为'\0'为真。
if(str[i] == c) {
printf("1\n");
} else {
printf("0\n");
}
i++;
}
}
int main()
{
char str[] = "acdcb";
char_contains(str,'c');
printf("******\n");
char_contains2(str,'c');
return 0;
}