⑴ c语言中怎么输入带标点符号的一句话
在scanf的%c前面加个空格就好了
改成这样就解决了scanf(" %c",&c);
具体错误解释是这样的:
因为回车键的ASC2字符是'\r' ,也就是0x0d,他相当于一个char型字符。
在scanf接收数据的时候,你输入的是:y(打个比方,一个字符),然后按下回车键
此时相当于你在键盘中输入的是俩个字符,'y’和'\r',这时如果你用%c接收,%c你应该很了解,是接收单个字符的,所以他会第一次接收'y’,第二次接收'\r',这也就是为什么连续输入字符%c前必须加上空格的道理,目的是防止前一个字符'\r'被下一个scanf误当做字符接收了。
当然,你如果用%s接收,他只会接收回车之前的字符串,%s特性,通过回车判断字符串输入结束。
如果用%d接收,他只识别数字,%f同样的道理。
举个例子你写个scanf("%s", &ch);scanf("%d", &ch);scanf("%f", &ch);然后什么数据都不输入,只按回车键,他是不会执行的,scanf下面的语句不会执行。就是我上面说的原因。
但是'\r'是一个字符,他当然会被%c接收,所以会造成误判。
这么解释总该明白吧。
⑵ c语言 怎么输入一句话,然后再输出那句话 (高分)
#include<stdio.h>
#include<string.h>
void main()
{
char ser[256];//最多能输入256个字符 如果想再多一点,可加大数组
int i=0;
int j=0;
char c;
printf("\t\t请输入你要输入一句话,输入回车结束!\n\n");
while((c=getchar())!='\n')//以回车做为结标志
{
ser[i++]=c;
}
if(c=='\n')
ser[i]='\0';//把结束符赋给数组ser
printf("\n\n");
printf("你输入的是-〉%s\n\n",ser);//单词全打印出来了
}
⑶ C语言,从键盘输入一句英文,不多于四十字,分别统计出大写字母,小写字母,其他字符的数量。
#include <stdio.h>
#include <string.h>
void shuru(char s[]) //输入并锁定长度
{
printf("请输入字符串:\n");
gets(s);
int i=0;
if(i=strlen(s)>40)
{
printf("您输入的长度超过40\n");
shuru(s);
}
}
void main()
{
char s[50]; //给50个长度
int i,dx,xx,qt;
dx=0; //初始大写字母为0
xx=0; //初始小写字母为0
qt=0; //初始其他字符为0
shuru(s);
for(i=0;i<strlen(s);i++)
{
if(s[i]<='z'&&s[i]>='a')
xx++;
else if
(s[i]<='Z'&&s[i]>='A')
dx++;
else
qt++;
}
printf("大写字母%d个,小写字母%d个,其他的字符%d个\n",dx,xx,qt);
}
⑷ c语言 如何从键盘输入字符串
c语言从键盘输入字符串的步骤如下:
1.首先我们新建一个dev C++的项目。
⑸ 在C语言中如何实现用键盘输入一个字符串,并打印出来
在C语言中实现用键盘输入一个字符串,并打印出来的解决方法如下:
1、首先定义一个字符串数组,如你可以给字符串100个数组空间。如图括号内数字即为你定义的数组大小。
(5)c语言怎样从键盘输入一句话扩展阅读:
字符数组的输出:
(1)用putchar()或printf()的‘%c’格式符对数组进行字符赋值。例如,对于数组a[10]:用putchar()赋值:
for(i=0;i<10;i++)
a[i]=putchar();
用printf()赋值:
for(i=0;i<10;i++)
printf("%c",a[i]);
输出结果为:
c program[2]
(2)用printf()的'%s'格式对数组赋值。还是对于数组a[10];
printf("%s",a);
输出结果为:
c program
参考资料来源:
网络-char
网络-字符数组
⑹ c语言 如何达到输入一句中文输出指定的中文
C语言中,汉字是用字符串来存储的,因为,汉字是多字节组成(GBK字符集一个汉字占两个字节,UTF8字符集,一个汉字占三个字节),所以,标准C中,只能用字符串来存储汉字数据。
可以采用字符串输入函数来输入中文。
判断中文是不是指定数据,可以用strcmp()函数来进行比较
中文输出,可用printf("%s")来输出相应的数据。
参考代码:
#include<stdio.h>
#include<string.h>
voidmain()
{
charstr[100];
printf("请输入中文:");
scanf("%s",str);
if(strcmp(str,"你好")==0)//两个字符串相等时,strcmp返回0
{
printf("我很好 ");
}
else
{
printf("你输入的是:%s ",str);
}
}
运行结果:
请输入中文: 你好
我很好
请输入中文: 中国
你输入的是:中国
⑺ c语言从键盘输入一字符串
#include<stdio.h>
void print_num(char *str)
{
char string[20][20];
int i=0,num=0,new_num=0,counter=0;
while(*(str+i))//即*(str+i)!='\0'
{
if(*(str+i)>='0'&&*(str+i)<='9'&&new_num==0)
{
string[num][counter]=*(str+i);
counter++;
new_num=1;
}
else if(*(str+i)>='0'&&*(str+i)<='9'&&new_num==1)
{
string[num][counter]=*(str+i);
counter++;
}
else if((*(str+i)<'0'||*(str+i)>'9')&&new_num==1)
{
string[num][counter]='\0';
new_num=0;
num++;
counter=0;
}
else if((*(str+i)<'0'||*(str+i)>'9')&&new_num==0);
i++;
}
string[num][counter]='\0';
num=num+1;
printf("there are %d num.\nthere are:\n",num);
for(i=0;i<num;i++)
puts(string[i]);
}
int main()
{
char string[100],*str;
printf("Please enter a string:\n");
gets(string);
str=string;
print_num(str);
return 0;
}
至于每个整数*2,可以作为练习来做,可以好好看一下这个代码,值得思考的
⑻ C语言编程,怎么从键盘输入一行字符,要求少于20个
#include<stdio.h>
int main()
{
int c[20];
printf("Please enter a character:");
while((c[20]=getchar())!='#')/*这里用c[20]等于将输入的字符直接赋值给下标为20的哪个数组元素也就是说你的C[0]到c[19]都没赋值,而且你要输入的是20个元素而c[20]是第21个元素了, 再有就是while后面如果没有其他语句就应该加一个 ; 符号表示执行一个空语句*/
if(c[20]>='a'&&c[20]<='z')
putchar(c[20]-'a'+'A');
else
putchar(c[20]);
printf("\n");
return 0;
}
#include<stdio.h>
int main()
{
int c[20];
int ch,i=0;
printf("Please enter a character:");
while((ch=getchar())!='#')
{
c[i]=ch;
i++;
}
if(c[20]>='a'&&c[20]<='z')
putchar(c[20]-'a'+'A');
else
putchar(c[20]);
printf("\n");
return 0;
}
⑼ 键盘C语言编程输入程序
getchar函数(字符输入函数)的作用是从终端输入一个字符。用法
getchar()
如
char
a;a=getchar();//表示从键盘输入一个字符,并把他赋值给字符变量a;
还可以用scanf
语句输入数据。用法
scanf(格式控制,地址表列)
如int
a;
scanf("%d",&a);
scanf("%d%d%d",&a,&b,&c)
"%d%d%d"表示按十进制整数形式输入三个数据。输入数据时,在两个数据之间以一个或多个空格间隔。
格式符
d表示输入十进制整数、
s用来输入字符串
f用来输入小数(实数)
你应该会用了吧
如果不会
欢迎你和我联系
很乐意为你服务
⑽ c语言,帮帮忙! 从键盘输入一句话,要求统计出每个字符出现的次数。已知该字符串中只有英文字符与空格
#include<stdio.h>
intmain(){
inti,ch,number[26]={0};
while((ch=getchar())!=' '){
if(ch>='A'&&ch<='Z')++number[ch-'A'];
if(ch>='a'&&ch<='z')++number[ch-'a'];
}
for(i=0;i<26;++i)
if(number[i])printf("%c:%d ",i+'a',number[i]);
printf(" ");
return0;
}