首页 > 编程知识 正文

c++ 字符串比较,c语言字符串比较

时间:2023-05-06 15:31:39 阅读:12444 作者:1012

先得出结论:

字符数组:保存字符的数组。 无法用printf('%sn ',char_array_name )打印。 因为%s将作为结束标志。

字符串:以“0”结尾的字符数组。

1 .初始化字符数组:

char arr1[]={'a '、' b '、' c'};

char arr2[3]={'a '、' b '、' c'};

char arr3[3]={'abc'};

char arr4[3]='abc ';

注意1 :

此字符数组的末尾没有“”。 用printf('%sn ',char_array_name '打印将返回错误的值。 因为此命令在打印“a”、“b”和“c”后看不到“”

有人不相信,但无法用printf('%sn”,char_array_name )打印,请尝试一下。

使用//`%s `打印没有' '的字符数组

#包含

intmain(intargc,char *argv[] ) ) ) )

char arr[]={'a '、' b '、' c'};

printf(%s(n )、arr );

返回0;

}

输出: abc。 微信? 你脸上啪啦啪啦的。 别慌,冷静点! 现在,打印arr[3]来看看吧。

#包含

intmain(intargc,char *argv[] ) ) ) )

char arr[]={'a '、' b '、' c'};

printf(%s%d(n ),arr,arr[3] );

判断//`arr[3] `是否为` '

if(ARR[3]==' ' () ) ) )

puts('ARR[3]=''n ' ); 请在这里多加反斜杠,逃避。 不那样的话就打不了

}

返回0;

}

输出:

abc 0

arr[3]=' '

看吧,这不是证明%s是痴情的种子吗? 兄弟可能会说,这不是还是%s就能打印出来的吗? 没错啊。 上面的例子确实是这样啊。 来看看例子吧。

#包含

intmain(intargc,char *argv[] ) ) ) )

char arr1[]={'a '、' b '、' c'};

char arr2[]={'x '、' y '、' z'};

printf(%s(n )、arr1);

printf(%s(n )、arr2);

返回0;

}

输出:

abcxyz

xyz

第一个字符数组的打印出了问题呢。 因为这次c的后面不是“”。 因此,请勿使用“%s”打印不以结尾的字符数组。

注意2 :

如果要使用的初始化字符数小于声明的字符数组的长度,编译器将在后面添加,就像初始化整数数组时添加0一样。 此时,这个字符数组相当于增长或字符串。 (c语言没有字符串类型。 ) printf )、char_array_name )可用。 举个例子:

#包含

intmain(intargc,char *argv[] ) ) ) )

char arr1[6]={'a '、' b '、' c'};

char arr2[]={'x ',' y ',' z ',''};

//证明文字不足的地方补充“”

if (arr [3]==arr [4] arr [4]==arr [5] arr [5]==' ' ) {

printf(true(n );

}

//用“% s”打印完全没有问题

printf(%s(n )、arr1);

printf(%s(n )、arr2);

返回0;

}

输出如下。

真的

abc

xyz

字符串初始化:

char[]='hello ';

char[]={'hello'};

char[10]={'h '、' e '、' l '、' l '、' o'};

char[]={'h '、' e '、' l '、' l '、' o '、''};

版权声明:该文观点仅代表作者本人。处理文章:请发送邮件至 三1五14八八95#扣扣.com 举报,一经查实,本站将立刻删除。