重庆分公司,新征程启航
为企业提供网站建设、域名注册、服务器等服务
一、输入数字可以用scanf输入。
公司主营业务:成都网站制作、成都网站建设、外贸营销网站建设、移动网站开发等业务。帮助企业客户真正实现互联网宣传,提高企业的竞争能力。成都创新互联是一支青春激扬、勤奋敬业、活力青春激扬、勤奋敬业、活力澎湃、和谐高效的团队。公司秉承以“开放、自由、严谨、自律”为核心的企业文化,感谢他们对我们的高要求,感谢他们从不同领域给我们带来的挑战,让我们激情的团队有机会用头脑与智慧不断的给客户带来惊喜。成都创新互联推出桃江免费做网站回馈大家。
如果输入的是整型数据,可以用
int a;
scanf("%d",a);
实现把输入的数字赋值给a的效果。
类似的,如果是float, double,short,long等类型的数据,那么就要把变量定义成对应的类型,然后使用各自的格式字符%f,%lf,%hd,%ld等进行输入。
二、输入单个字符。
输入单个字符可以用以下两种函数。
定义char c;
1 scanf("%c", c);
这种方法和输入数字是类似的,%c仅读入一个字符,并赋值给c。
2 c = getchar();
getchar函数的功能就是读入一个字符,并以返回值形式返回。
三、输入一串字符(以空白字符分隔)。
可以用scanf的%s格式。
char str[100];//空间要定义足够大
scanf("%s", str);//将字符串读入并存在str中
四,读入一行数据。
可以用gets函数。gets的功能就是读入一整行数据,以换行符为结束。
char str[100];//同样要足够大的空间
gets(str);
补充,无论哪种形式的输入,都可以用getchar逐个输入到字符串中,然后判断结束符以结束输入,再对字符串做处理。这种方法对编程水平要求比前几种略高,代码量也更大,但好处是完全自己控制,更加灵活。
可以使用以下代码进行统计:
#include
main()
{undefined
int acount=0,bcount=0,ccount=0,dcount=0;
char a;
printf("请输入一行字符:\n");
a = getchar();
while (a !='\n')
{undefined
switch (a)
{undefined
case'q':
case'w':
case'e':
case'r':
case't':
case'y':
case'u':
case'i':
case'o':
case'p':
case'a':
case's':
case'd':
case'f':
case'g':
case'h':
case'j':
case'k':
case'l':
case'z':
case'x':
case'c':
case'v':
case'b':
case'n':
case'm':
case'Q':
case'W':
case'E':
case'R':
case'T':
case'Y':
case'U':
case'I':
case'O':
case'P':
case'A':
case'S':
case'D':
case'F':
case'G':
case'H':
case'J':
case'K':
case'L':
case'Z':
case'X':
case'C':
case'V':
case'B':
case'N':
case'M':
acount++;break;
case'1':
case'2':
case'3':
case'4':
case'5':
case'6':
case'7':
case'8':
case'9':
case'0':
bcount++;break;
case' ':
ccount++;break;
default:
dcount++;break;
}
a= getchar();
}
printf("字母数:%d\n空格数:%d\n数字数:%d\n其他字符:%d\n",acount,ccount,bcount,dcount);
}
分组编写函数:
编写一个函数void fun(char *tt,int pp[]),统计在tt字符中"a"到"z"26各字母各自出现的次数,并依次放在pp所指的数组中。
#includestdio.h
#includestring.h
void fun(char *tt,int pp[]);
void main()
{
char tt[50];
int pp[26]={0};
printf("Input a string:\n");
gets(tt);
fun(tt,pp);
}
void fun(char *tt,int pp[])
{
int i;
for(i=0;istrlen(tt);i++)
{
if(*(tt+i) = 'a' *(tt+i) = 'z')
pp[*(tt+i)-'a']++;
}
for(i = 0;i 26;i++)
printf("%c appeared %d times\n",'a'+i,pp[i]);
}
c语言中要统计字符串中包含英文字母的个数可以参考以下内容:
main()
{
char str[100],*p;
int num[4],i;
p=str;
gets(str);
for(i=0;i4;i++)
num[i]=0;
for(;*p!='\0';p++)
{
if((*p='z'*p='a')||(*p='Z'*p='A')) num[0]++;
else if(*p==' ') num[1]++;
else if((*p='9'*p='0')) num[2]++;
else num[3]++;
}
printf("%d %d %d %d\n",num[0],num[1],num[2],num[3]);
}
扩展资料:
在写代码的过程中需要注意:
void main()的用法并不是任何标准制定的。 C语言标准语法是int main,任何实现都必须支持int main(void) { /* ... */ }和int main(int argc, char* argv[]) { /* ... */ }。
类似于a+=a++;或者(i++)+(i++)+(i++)属于未定义行为,并不是说c语言中还未定义这种行为,它早有定论,它的结果取决于编译器实现,不要写这样的代码。