本文目录一览:
- 1、C语言编程:从键盘中输入一个英文字符串
- 2、C语言编程:输入一行字符,输出其中英文字母、空格、数字和其它字符的个数?
- 3、c语言:输入一行英文字符串,把每个单词第一个字母变为大写,输出修改后的字符串
- 4、c语言怎样才能输入一行字符,以回车作为结束标志,分别统计出大写字母,小写字母,空格,数字和其他字符?
C语言编程:从键盘中输入一个英文字符串
#includestdio.h
#includestdlib.h
int main()
{
int strSize = 100;
char *str = (char *)malloc(sizeof(char) * strSize);
int charNum = 0;
char input;
//逐个字符输入字符串,可以输入int可以表示的最大值个字符
printf("请输入任意个字符:\n");
while(true)
{
scanf("%c",input);
if(input != '#')
{
if((input = 'A' input = 'Z') || (input = 'a' input = 'z'))
{
if(charNum strSize)
{
strSize += 100;
str = (char *)realloc(str,strSize);
}
str[charNum] = input;
charNum++;
}
}
else
{
break;
}
}
//输入结果分析
int i = 0,j = 0;
char *tempChar = (char *)malloc(sizeof(char) * charNum);
int *tempCharNum = (int *)malloc(sizeof(int) * charNum);
int charType = 0;
bool exist = false;
for(i = 0; i charNum; i++)
{
exist = false;
tempChar[i] = '#';
tempCharNum[i] = 0;
for(j = 0; j charNum; j++)
{
if(tempChar[j] == '#')
{
break;
}
if(tempChar[j] == str[i])
{
exist = true;
tempCharNum[j] += 1;
}
}
if(exist == false)
{
tempChar[charType] = str[i];
tempCharNum[charType] = 1;
charType++;
}
}
int t1;
char t2;
for(j = 0; j charType - 1; j++)
{
for(i = 0; i charType; i++)
if(tempCharNum[i] tempCharNum[i+1])//如果a[i]大于a[i+1]
{
//交换a[i]和a[i+1]的值,即把较大的元素往后排
t1 = tempCharNum[i];
tempCharNum[i] = tempCharNum[i+1];
tempCharNum[i+1] = t1;
t2 = tempChar[i];
tempChar[i] = tempChar[i+1];
tempChar[i+1] = t2;
}
}
for(i = 0; i charNum; i++)
{
if(tempChar[i] != '#')
{
printf("单词:%c,次数:%d\n",tempChar[i],tempCharNum[i]);
}
}
free(str);
free(tempChar);
free(tempCharNum);
return 0;
}
C语言编程:输入一行字符,输出其中英文字母、空格、数字和其它字符的个数?
#include stdio.h
int isletter(char c)
{
return c='a'c='z'||c='A'c='Z';
}
int isdigit(char c)
{
return c='0'c='9';
}
int isblank(char c)
{
return c==' ';
}
int main()
{
char c;
int letters,digits,blanks,others;
for(letters=digits=blanks=others=0;(c=getchar())!='\n';)
if(isletter(c))
letters++;
else if(isdigit(c))
digits++;
else if(isblank(c))
blanks++;
else
others++;
printf("letters:%d blanks:%d digits:%d others:%d\n",letters,blanks,digits,others);
return 0;
}
c语言:输入一行英文字符串,把每个单词第一个字母变为大写,输出修改后的字符串
#includelt;ctype.hgt;
#includelt;string.hgt;
#includelt;stdio.hgt;
int main(int argc,char*argv[])
{
char str[100+1];
int isfirst=1;
char ch;
int i=0;
while((ch=getchar())!=EOF)
{
if(isalpha(ch))
{
if(isfirst==1)
{
ch=toupper(ch);
isfirst=0;
}
}
else
{
isfirst=1;
}
str[i++]=ch;
}
strlt;igt;='\0';
printf("%s\n",str);
return 0;
}
扩展资料:
printf用法:
printf()函数的调用格式为:printf("lt;格式化字符串gt;",lt;参量表gt;)。
其中格式化字符串包括两部分内容:一部分是正常字符,这些字符将按原样输出;另一部分是格式化规定字符,以"%"开始,后跟一个或几个规定字符,用来确定输出内容格式。
参量表是需要输出的一系列参数,其个数必须与格式化字符串所说明的输出参数个数一样多,各参数之间用","分开,且顺序一一对应,否则将会出现意想不到的错误。
比如:
int a=1234;
printf("a=%d\n",a);
输出结果为a=1234。
scanf()是C语言中的一个输入函数。与printf函数一样,都被声明在头文件stdio.h里,因此在使用scanf函数时要加上#includelt;stdio.hgt;。
int scanf(const char*restrict format,...);
函数scanf()是从标准输入流stdin(标准输入设备,一般指向键盘)中读内容的通用子程序,可以说明的格式读入多个字符,并保存在对应地址的变量中。
如:
scanf("%d%d",a,b);
函数返回值为int型,如果a和b都被成功读入,那么scanf的返回值就是2。
c语言怎样才能输入一行字符,以回车作为结束标志,分别统计出大写字母,小写字母,空格,数字和其他字符?
C代码和运行结果如下:
统计结果正确,望采纳~
附源码:
#include stdio.h
int main() {
char s[100];
fgets(s, 100, stdin); // 输入一行字符,包括行尾的'\n'
int i = 0, upper = 0, lower = 0, space = 0, digit = 0, other = 0;
while (s[i] != '\n') {
if (s[i] = 'A' s[i] = 'Z')
upper++;
else if (s[i] = 'a' s[i] = 'z')
lower++;
else if (s[i] == ' ')
space++;
else if (s[i] = '0' s[i] = '9')
digit++;
else
other++;
i++;
}
printf("大写字母:%d, 小写字母:%d, 空格:%d, 数字:%d, 其他:%d\n",
upper, lower, space, digit, other);
return 0;
}