‘壹’ c语言字符串打印出现特殊字符是怎么回事请问如何解决这个问题
这是由于代码页不同的缘故,要把代码页切换到英文格式,才能显示扩展ASCII码,否则,编译系统会把它当作,汉字来显示,就出现了右图中的“怪汉字”。但是,这种情况下却是不能显示汉字的(在贴出的程序中特意“企图”显示一行中文信息,观察它的显示情况,然后把system("chcp 437 > nul");一行注释或删除后再次编译、运行比较再次运行的不同结果),所以,在结束程序之前,再换回到原来的显示汉字状态(system("chcp 936 > nul");)
#include
#include
int main()
{ char a=176,b=219;
system("chcp 437 > nul");
printf("%c%c%c%c%c
",b,a,a,a,b);
printf("%c%c%c%c%c
",a,b,a,b,a);
printf("%c%c%c%c%c
",a,a,b,a,a);
printf("%c%c%c%c%c
",a,b,a,b,a);
printf("%c%c%c%c%c
",b,a,a,a,b);
printf("
欢迎使用C语言编程!
");
system("pause");
system("chcp 936 > nul");
return 0;
}
‘贰’ c语言字符串 打印不出来
你这是整型数组,不能按字符串输出,%s只能输出char s[100]这样的字符数组才可以!
整型数组只能用循环来,逐一的输出每个元素!
‘叁’ 一个C语言函数问题,打印不出字符,希望能帮助找到错误
#include<stdio.h>
voidfind(charch,intx,inty);
intmain()
{
charch;
inta,b;
printf("inputachar:");
scanf_s("%c",&ch);
printf("inputcolumnandrow:");
scanf_s("%d%d",&a,&b);
find(ch,a,b);
return0;
}
voidfind(charch,intx,inty)
{
inti,j;
for(i=0;i<y;i++)
{
for(j=0;j<x;j++)
{
printf("%c",ch);
}
printf("
");//换行写在for循环里面
}
}
‘肆’ C语言:怎么打印二维数组中的字符串呢我尝试%s,%c打出来的都不是
直接用个二重循环,然后再一个个打印,打印的时候可以用%s。
‘伍’ C语言中有时当字符串结尾没有\n时,字符串无法打印,怎么解决
加入字符串存在数组a[]里面,因为没有'\0'字符,那么至少数组的长度你知道吧,如果不能加'\0',而又想知道里面是什么的话,那就一个for循环,一个字符一个字符地打印吧:
int i=0;
for(i=0; i<length; i++)
printf("%c", a[i]);
如果数组的长度不知道,又没有'\0'结尾,那么我敢说,这个数组废掉了。。
‘陆’ c++用printf怎么不可以打印字符串
库函数的定义都是在头文件中,不同的库函数都需要不同的头文件,而c++与c语言都有自己的标准库,c++的标准库中输出是cout函数在头文件iostream,而printf是C语言标准库中的输出函数,在头文件stdio.h中,c++中要用printf需要加载stdio.h,#include<stdio.h>,C语言和c++调用函数必须加载相应的头文件,否则不能输出,
‘柒’ C语言为什么打印字符串不会显示
请把程序的代码复制上来。这完全看不清啊。
‘捌’ c语言显示不出字符串
您好,很高兴回答您的问题。
您的两个截图,一个是结果,一个是部分程序,在我们读者看来是没有任何问题的,因为结果都显示出来了。从您的疑问中猜测,估计是学号显示的内容不正确,那就需要您给出全部的程序,因为前后都是有关联的,您给出具体的所有程序,才能来分析错误的原因哦。
‘玖’ c语言字符串打印不出来,求大神解释一下
退出第一个for循环的时候,
*a为0,于是*c第一个就赋值成了结束符,导致c是空串.
改成:
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
void aaa(char *a,char *c,int i);
int main()
{
char a[20];
char c[20];
printf("please input a:\n");
gets(a);
int i = strlen(a);
aaa(a,c,i);
printf("%s\n",c);
return 0;
}
void aaa(char *a,char *c,int i)
{
for (;*a != '\0';)
{
a++;
}
a--;//前移一位
for (;strlen(a) <= i;)
{
*c = *a;
c++;
a--;
}
*c = '\0';
}
不过
实际上这样做在最后一位赋值的时候a有一个越界操作.
改成
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
void aaa(char *a,char *c,int i);
int main()
{
char a[20];
char c[20];
printf("please input a:\n");
gets(a);
int i = strlen(a);
aaa(a,c,i);
printf("%s\n",c);
return 0;
}
void aaa(char *a,char *c,int i)
{
for (;*a != '\0';)
{
a++;
}
a--;
for (;i; i--)
{
*c = *a;
c++;
a--;
}
*c = '\0';
}
会更严谨.