请前辈指点 char c[10] = "";
请问c字符串每个都是赋值'\0'吗? 本帖最后由 ba21 于 2018-6-8 13:44 编辑(1)
char str="";
(2)
char str={'\0'};
(3)
char str;
str='\0';
第(1)(2)种方式是将str数组的所有元素都初始化为'\0',而第(3)种方式是只将str数组的第一个元素初始化为'\0'。如果数组的size非常大,那么前两种方式将会造成很大的开销。
只能全部初始化 \0
如果char str="b"; 意思是第0个元数 初始化 为 b ,其它的 填 '\0'
这些课上都讲得很清楚
{:10_256:}没懂啥意思,你可以这样理解
char c[ ]={ 'I', ' ','a','m', ' ','h','a','p','p','y','\0' };
'\0'也是00000000,前面的转义符\的意思说这个不是0,是空字符
只不过最后'\0'字符串结束标志给自动补上了 不是,是第一个字符赋值为 '\0' BngThea 发表于 2018-6-8 13:35
不是,是第一个字符赋值为 '\0'
#include <stdio.h>
#include <string.h>
#define NUM 128
int main()
{
int ch, i, j = 0, max = 0;
int input_num = 0;
int ascii = {0};
char count = "";
printf("请输入英文文本:");
while ((ch = getchar()) != '\n')
{
ascii++; // 字符对应的ASCII码加1
input_num++;
}
for (i = 0; i < NUM; i++)
{
if (ascii)
{
count = i;
if (ascii > ascii)
{
max = i;
}
}
}
printf("你总共输入了%d个字符,其中不同的字符个数有%d个。\n", input_num, strlen(count));
printf("它们是:%s\n", count);//这个字符串没有'\0'结束,上面声明char count = "";
printf("出现次数最多的字符是\'%c\',它总共出现了%d次。\n", max, ascii);
return 0;
}
页:
[1]