① c语言要求控制台 限制控制台只能一行输入20个字符,怎么搞啊
#include <stdio.h>
#include <conio.h>
#define MAX_LINE_INPUT_COUNT 20
void GetInputCharacter(char* szInput)
{
int i;
char cTmp;
for (i=0; i<MAX_LINE_INPUT_COUNT; i++)
{
cTmp = getch();
if (cTmp == '\x0d' || cTmp == '\n')
{
printf("\n");
break;
}
else
{
szInput[i] = cTmp;
}
printf("%c",szInput[i]);
}
while (i == MAX_LINE_INPUT_COUNT)
{
cTmp = getch();
if (cTmp == '\x0d' || cTmp == '\n')
{
printf("\n");
break;
}
}
}
void main()
{
char szInput[MAX_LINE_INPUT_COUNT+1] = {0};
GetInputCharacter(szInput);
printf("your input string: %s\n",szInput);
return;
}
② C语言编程:输入一行字符,至少50个,统计其中英文字母,...
#include "stdio.h"
#include "string.h"
void main()
{
char str[100];
int i;
int count=0;
printf("请输入字符串:\n");
gets(str);
for(i=0;;i++)
{if(str[i]>'A'&&str[i]<'z')
count++;
if(str[i+1]=='\0')
break;
}
printf("字母个数为:%d\n",count);
}
③ c语言char可以存多少个字符
C语言中,char是一个字符类型的关键字。
如果利用char定义一个变量,那么只能存放一个字符;
如果利用char定义一个数组或字符指针,那么存放的字符个数根据用户分配的内存空间来定。
(3)c语言一行最多多少字符扩展阅读:
char用法实例:
用 char 类型来专门表示一个字符,例如:
char a='1';
char b='$';
char c='X';
char d=' '; // 空格也是一个字符
char e='63'; //也可以使用转义字符的形式
char 称为字符类型,只能用单引号' '来包围,不能用双引号" "包围。而字符串只能用双引号" "包围,不能用单引号' '包围。
输出字符使用 %c,输出字符串使用 %s。
④ c语言:输入4行字符,每行不超过60个字符,将空格符后第一个英文字母改为大写(原为大写的则不变)
#include<stdio.h>
#include<string.h>
int main()
{
char a[60];
int d,i;
while(gets(a))
{
d=strlen(a);
for(i=0;i<d;i++)
{ if(i==0)
a[0]=a[0]-32;
if(a[i]==' ')
a[i+4]=a[i+4]-32;
printf("%c",a[i]);
}
printf(" ");
}
return 0;
}
(4)c语言一行最多多少字符扩展阅读:
main()函数用法:
大多数UNIX系统对main函数提供了三个参数,原型如下:
intmain(intargc,char*argv[],char*env[]);
其中第三个参数是环境表地址。
ANSIC规定main函数只有两个参数,而且第三个参数与全局变量environ相比也没有带来更多益处,所以POSIX.1也规定应使用environ而不使用第三个参数。
通常用getenv和putenv函数来存取特定的环境变量,而不是用environ变量。
main函数的原型多是下面这种形式:
intmain(intargc,char*argv[]),参数argc代表了输入参数的个数,char*argv[]表示传入的参数的字符串,是一个字符串数组。
例如在linux平台下编写一个小程序:
int main(intargc,char*argv[])
{
int i;
printf("argc:%d\n",argc);
for(i=0;i<argc;i++)
{
printf("argv[%d]:%s\n",i,argv[i]);
}
exit(0);
}
用gcc编译后形成一个a.out的可执行的文件,运行a.out,其结果是:
argc=1,argv[0]=”a.out”
运行的程序的文件名,也占用一个参数位置,也就是说argv数组中的第一个单元指向的字符串总是可执行程序的名字,以后的单元指向的字符串依次是程序调用时的参数。这个赋值过程是操作系统完成的,只需要拿来用就可以了。
在命令行参数的提交中,系统会自动给指针数组后加上一个NULL,所以for(i=0;i<argc;i++)这句也可以换成while(*argv!=NULL)
int main(intargc)省略其它参数的定义也是可以的,这样运行时候argc就直接返回参数个数,而不返回其它。
运行命令行参数带有char*argv[]的时候,如果输入参数带有空格,应该用双引号括起来。
⑤ C语言如何将每行代码限制在80个字符
char ch;改成char ch,x;——即增设一个记数变量x。
在putchar(ch);后加一句if(++x%80==0) putchar(' ');。
最好把while(!feof(fp))改成while((ch=fgetc(fp))!=EOF),并把后面的ch=fgetc(fp)删除;或者在while(!feof(fp))前加一句ch=fgetc(fp);,不然读到文件最后会产生错误。
⑥ C语言的printf(“”);里面可以输入多少个数字或字符
printf()函数是格式输出函数,请求printf()打印变量的指令取决与变量的类型.例如,在打印整数是使用%d符号,在打印字符是用%c 符号.这些符号被称为转换说明.因为它们指定了如何不数据转换成可显示的形式.下列列出的是ANSIC标准peintf()提供的各种转换说明.
转换说明及作为结果的打印输出%a 浮点数、十六进制数字和p-记数法(C99)
%A浮点数、十六进制数字和p-记法(C99)
%c一个字符
%d有符号十进制整数
%e浮点数、e-记数法
%E浮点数、E-记数法
%f浮点数、十进制记数法
%g根据数值不同自动选择%f或%e.
%G根据数值不同自动选择%f或%e.
%i 有符号十进制数(与%d相同)
%o无符号八进制整数
%p指针
%s字符串
%u无符号十进制整数
%x使用十六进制数字0f的无符号十六进制整数
%X使用十六进制数字0f的无符号十六进制整数
%%打印一个百分号 使用printf ()函数printf()的基本形式:printf("格式控制字符串",变量列表);
#include<cstdio> int main()
{
//for int
int i=30122121;
long i2=309095024l;
short i3=30;
unsigned i4=2123453; printf("%d,%o,%x,%X,%ld,%hd,%u\n",i,i,i,i,i2,i3,i4);//如果是:%l,%h,则输不出结果
printf("%d,%ld\n",i,i2);//试验不出%ld和%d之间的差别,因为long是4bytes
printf("%hd,%hd\n\n\n",i,i3);//试验了%hd和%d之间的差别,因为short是2bytes
//for string and char
char ch1='d';
unsigned char ch2=160;
char *str="Hello everyone!";
printf("%c,%u,%s\n\n\n",ch1,ch2,str);//unsigned char超过128的没有字符对应
//for float and double,unsigned and signed can not be used with double and float
float fl=2.566545445F;//or 2.566545445f
double dl=265.5651445;
long double dl2=2.5654441454;
//%g没有e格式,默认6位包括小数点前面的数,
//%f没有e格式,默认6位仅只小数点后面包含6位
//%e采用e格式,默认6位为转化后的小数点后面的6位
printf("%f,%e,%g,%.7f\n",fl,dl,dl,dl);
printf("%f,%E,%G,%f\n",fl,dl,dl,dl);//%F is wrong
printf("%.8f,%.10e\n",fl,dl);
printf("%.8e,%.10f\n\n\n",fl,dl);
//for point
int *iP=&i;
char *iP1=new char;
void *iP2;//dangerous!
printf("%p,%p,%p\n\n\n",iP,iP1,iP2);
//其他知识:负号,表示左对齐(默认是右对齐);%6.3,6表示宽度,3表示精度
char *s="Hello world!";
printf(":%s: \n:%10s: \n:%.10s: \n:%-10s: \n:%.15s: \n:%-15s: \n:%15.10s: \n:%-15.10s:\n\n\n",
s,s,s,s,s,s,s,s); double ddd=563.908556444;
printf(":%g: \n:%10g: \n:%.10g: \n:%-10g: \n:%.15g: \n:%-15g: \n:%15.10g: \n:%-15.10g:\n\n\n",
ddd,ddd,ddd,ddd,ddd,ddd,ddd,ddd);
//还有一个特殊的格式%*.* ,这两个星号的值分别由第二个和第三个参数的值指定 printf("%.*s \n", 8, "abcdefgggggg");
printf("%*.*f \n", 3,3, 1.25456f); return 0;
}
⑦ 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语言为什么一个2行4列的二维数组,每一行可以存放最多三个字符的字符串
因为2行4列的二维数组,每一行有4个空间,三个字符占了三个空间,字符串末尾还要有串的结束标识符'\0'(ASCII码第0号字符),结束标识符要占据一个空间,一共占据4个空间,所以最多存放3个字符。当然你也可以每一行存放4个字符,不要存放串尾结束标识符,但是如果在输出的时候没有加以控制,会导致超出数组范围的输出后面内存单元内容,直至输出到下一个'\0'才会停止输出。
⑨ C语言 输入一行不超过80字符串 将其中所有的$改为s 要求用指针 我自己做的 不知道哪里错
//下面是正确的程序,改过有点多,不一一指出了。
#include<stdio.h>
#define N 80
void main()
{
char a[N],*p;
int i;
printf("请输入字符串:\n");
gets(a);
p=a;
for(i=0;*p;i++,p++) //零与字母o都分不清楚。
if(*p=='$')
*p='s';
printf("%s\n",a);
}
⑩ C语言规定一个标识符允许的字符个数是多少个
规定标识符最长可达255个字符,但只有前面32个字符在编译时有效,所以在编写源程序时标识符的长度建议不要超过32个字符。