C语言中读取一个字符

C语言中读取一个字符,第1张

getch和getche都是读入单个字符的,不同的是getch不会将读书的输出来,而getche就会再把它输出到屏幕上。

比如你用getch读入,按了键以后屏幕上没有输出,但是实际上已经读入了。而getche会把你刚按的再输出来。

getchar则是读入字符串的。

#include<stdioh>

#include<stdlibh>

main()

{

char i;

printf("getchar输入是字符,可以查看ASC表\n");

i=getchar();

printf("十进制为%d\n",i);

printf("十六进制为%x\n",i);

while(1);

}

for ( i=0;string[i]!='\0';i++); //分号去掉

for ( i=0;string[i]!='\0';i++); // 分号去掉

'\0' 不好判断。scanf 读不进 '\n' ,遇到 '\n' 要你再输入东西。

改用 getchar() 较好。

#include <stdioh>

#include<stdlibh>

main(){ char s[100];

int i;

printf("enter a string:");

i=0;

while(1){

s[i]=getchar();

if (s[i]=='\n')break;

i++;

}

s[i] ='\0';

printf("%s",s);

}

scanf("%s",str2)的实际 *** 作是将str2作为一个指针,按照字符串(%s)来读取和识别标准输入的内容,并将读取到的内容存储到指针str2所指地址中。

你的str1被赋值为空(null),即为0,所有的系统均不会允许读写地址0上的内容,所以报错。

可以试着申请一个地址并赋值给str1,这样就能读写了,最后记得释放内存

#include <stdioh>

#include <stdlibh>

int main(int argc, char argv[])

{

char str1 = (char )calloc(1, 10);

scanf("%s", str1);

printf("%s", str1);

free(str1);

}

char s[]="ssssabedbewb";

int len;

char p;

s[2]; //第一种方法

printf("输入输入字符串的长度:");

scanf("%d",&len);

printf("输入字符串:");

p=malloc(len);

scanf("%s",p);

printf("%c",p[3]); //第二种方法

显然第二种方法更灵活,不过就是有点烦

办法很多,举一二三:

虽说“不定长”,但长度要求不是很大时,可声明一个足够大的字符型数组来解决。缺点是空间略有浪费。

声明两个字符型指针,先为其一动态分配内存,当输入满时为另一个分配更大些的内存,把已经输入的内容拷贝过去,释放原来较小的空间;交换指针,继续输入,如此不断。缺点是瞬间需将近两倍实际需要的空间。

用链表,这比较正宗,但需要5位以上的空间。

第2在实际工作中使用过,一个字:爽!

你写的程序就是这样的啊,当然就这样输出了#include<stdioh>void main(){ char s1[50],s2[50]; scanf("%s",s1); scanf("%s",s2); printf("%s\n",s1); printf("%s\n",s2);}你要输人的话也不是这样输的啊 scanf("%s",s1); 只是给s1[0]输入了值; scanf("%s",s2); 也是一样

追问:

我现在知道了为什么是这样,但我希望能够读取空格,该用哪个函数

回答:

getchar()学过没?没学过,自己看

追问:

学过的,但那是输入单个字符嘛

回答:

请高清楚 空格 是字符, 你不用这个怎么读入呢?你可以查下scanf函数和getchar函数 那就用gets()函数 是读入字符串的 不过我觉得你现在可能还理解不了 这些函数的区别,只是朦朦胧胧

补充:

我说错了 (你要输人的话也不是这样输的啊 scanf("%s",s1); 只是给s1[0]输入了值; scanf("%s",s2); 也是一样)-----------这句是不对的

以上就是关于C语言中读取一个字符全部的内容,包括:C语言中读取一个字符、用getchar获取输入的字符,并用printf分别打印出它的十进制整型,十六进制的数值。用最简单的C语言编写、c语言 输入一个字符串,一个个读入字符,再输出。等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/web/9621200.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-04-30
下一篇 2023-04-30

发表评论

登录后才能评论

评论列表(0条)

保存