|
马上注册,结交更多好友,享用更多功能^_^
您需要 登录 才可以下载或查看,没有账号?立即注册
x
#include<stdio.h>
void main()
{
char a[]="acegikm";
char b[]="bdfhjln";
char c[80];
int i=0,j=0 ,k=0;
while(a[i]!='\0'&&b[j]!='\0')
{
if(a[i]<b[j])
{
c[k]=a[i];
i++;
k++;
}
else
{
c[k]=b[j];
k++;
j++;
}
}
for(k=0;k<i+j+2;k++)
{
printf("%c",c[k]);
}
}
在您的代码中,输出最后一个字符出现乱码的问题是因为在 c数组末尾没有添加字符串结束符号 \0。这导致在打印 c数组时, printf函数无法正确判断字符串的结尾。
以下是修改后的代码,添加了末尾的字符串结束符号 \0:
- #include <stdio.h>
- int main() {
- char a[] = "acegikm";
- char b[] = "bdfhjln";
- char c[80];
- int i = 0, j = 0, k = 0;
-
- while (a[i] != '\0' && b[j] != '\0') {
- if (a[i] < b[j]) {
- c[k] = a[i];
- i++;
- k++;
- } else {
- c[k] = b[j];
- k++;
- j++;
- }
- }
-
- while (a[i] != '\0') {
- c[k] = a[i];
- i++;
- k++;
- }
-
- while (b[j] != '\0') {
- c[k] = b[j];
- j++;
- k++;
- }
-
- c[k] = '\0'; // 添加字符串结束符号
-
- for (k = 0; c[k] != '\0'; k++) {
- printf("%c", c[k]);
- }
-
- return 0;
- }
复制代码
通过在代码末尾添加字符串结束符号,现在最后一个字符将正确打印而不会出现乱码。
如果回答对你有帮助,请给我一个最佳答案! 
|
|