本文目录一览:
- 1、c语言 为何hello中的h无法输出
- 2、C语言使用调用函数输出hello,求多种写法.
- 3、c程序,实现对键盘输入信息的判断,当键盘输入字母‘h’时,打印输出字符串“Hello!” 怎么编写程序
c语言 为何hello中的h无法输出
你的代码有潜在危机!你把char s2[]="my swetty ";改成char s2[40]="my swetty ";就不会有问题了。编译器是从高地址到低地址安排变量的,在你这里就是最低地址安排s2,向上再安排s1,最后安排c。但char s2[]="my swetty ";这种写法只为s2分配了"my swetty "这么多个字符+1那么大空间,根本再接不下"hello "这个字符串。但C不检查数组边界,你给它用strcat接上hello后,最后的那个'\0'把h覆盖了,若给hello后再加一个空格,恐怕连e都要被覆盖掉。而char s2[40]="my swetty ";这种写法为s2分配了40字节,放下hello就没有问题了……供参考。
C语言使用调用函数输出hello,求多种写法.
一会把使用指针的方式传上来
源代码如下:
#include stdio.h
#include stdlib.h
void Prtf1();//第一种函数调用-直接使用printf函数
void Prtf2();//第二种函数调用-字符数组
void Prtf3();//第三种函数调用-直接使用puts函数
void Prtf4();//第四种函数调用-用数组首地址方式访问
void Prtf5();//第五种函数调用-用指针方式访问
void Prtf6();//第六种函数调用-用指针方式访问(指针的定义赋值不同,区别方法五)
char str[5]= "Hello";
int main()
{
Prtf1();
Prtf2();
Prtf3();
Prtf4();
Prtf5();
Prtf6();
return 0;
}
//第一种函数调用-直接使用printf函数
void Prtf1()
{
printf("Hello\n");
}
//第二种函数调用-字符数组
void Prtf2()
{
int i;
for(i=0; i5; i++)
{
printf("%c",str[i]);
}
printf("\n");
}
//第三种函数调用-直接使用puts函数
void Prtf3()
{
puts("Hello");
}
//第四种函数调用-用数组首地址方式访问
void Prtf4()
{
int i;
for(i=0; i5; i++)
{
printf("%c",*(str+i));
}
printf("\n");
}
//第五种函数调用-用指针方式访问
void Prtf5()
{
int i;
char *ptr_str;
for(i=0; i5; i++)
{
ptr_str = str[0];//把数组首元素地址给指针
printf("%c",*(ptr_str+i));
}
printf("\n");
}
//第六种函数调用-用指针方式访问(指针的定义赋值不同,区别方法五)
void Prtf6()
{
int i;
char *ptr_str;
for(i=0; i5; i++)
{
ptr_str = str;//把数组名给指针
printf("%c",*(ptr_str+i));
}
printf("\n");
}
c程序,实现对键盘输入信息的判断,当键盘输入字母‘h’时,打印输出字符串“Hello!” 怎么编写程序
例:当键盘输入字母‘h’时,打印输出字符串“Hello!”;当输入字母‘g’时,打印输出字符串“Good!”
如果要实时输出的话可以用getch()
输入的同时程序就自动判断显示,不用按回车。
也就是你键盘按h,屏幕直接显示Hello!,按g屏幕直接显示Good!,不会出现h和g。
#include stdio.h
#include conio.h //注意添加这个头文件
void main(){
char c;
while(c=getch())
{
if(c=='h')
printf("Hello!");
if(c=='g')
printf("Good!");
}
}
不过这样只有输入h和g时才有反应
如果不是要实时的判断,可以用getchar()
这个要你输入并按回车后才开始判断显示。这样屏幕上会留下你原来输入的h或g
#include stdio.h
void main(){
char c;
while(c=getchar())
{
if(c=='h')
printf("Hello!");
if(c=='g')
printf("Good!");
}
}