C++ 数组 输入一行字符串(长度小于80个字符,只有字母和数字),统计其中大写字母、小写字母和数字的个数
#include
using namespace std;
int main(void)
{
int num,largeLetter,smallLetter,other;
num = largeLetter = smallLetter = other = 0;
char *s = new char[100];
cout<<"请输入一串字符:"<<endl;
gets(s);
while (*s != '\0')
{
if (*s>='A' && *s<='Z')
largeLetter++;
else if(*s>='a' && *s<='z')
smallLetter++;
else if (*s>='0' && *s<='9')
num++;
else
other++;
s++;
}
cout<<"数字个数为:"<<num<<endl;
cout<<"大写字母个数为:"<<largeLetter<<endl;
cout<<"小写字母个数为:"<<smallLetter<<endl;
cout<<"其他字符个数为:"<<other<<endl;
}
这好办啊——
#include int main(void){ char s[220],s2[30][20]; int i,j,t; printf("Input a string...
"); gets(s); for(t=i=j=0;s[j];j+=t) sscanf(s+j,"%s%n",s2[i++],&t); for(j=0;j<i;printf("%s
",s2[j++])); return 0;}
源程序代码以及算法解释如下:
#define _CRT_SECURE_NO_WARNINGS//VS环境下需要,VC不需要
#include <iostream>
#include <string>
int main()
{
const int n = 80;
int i = 0;
char str[n] = { NULL };//字符数组
int Numb_count = 0;//数字个数
int ABC_count = 0;//大写字母个数
int abc_count = 0;//小写字母个数
scanf("%s", str);//连续输入字符到字符数组
while (str[i] != '\0')
{
if ((str[i] >= '0') && (str[i] <= '9'))//判断是否是数字
{
Numb_count++;
}
else if ((str[i] >= 'a') && (str[i] <= 'z'))//判断是否是小写字母
{
abc_count++;
}
else if ((str[i] >= 'A') && (str[i] <= 'Z'))//判断是否是大写字母
{
ABC_count++;
}
i++;
}
printf("数字个数:%d
小写字母个数:%d
大写字母个数:%d
", Numb_count, abc_count, ABC_count);
return 0;
}
程序运行结果如下:
扩展资料:
其他实现方式:
#include "stdafx.h"
#include <iostream>
int main()
{
char str[80]="\0",resultStr[80]="\0";
int cursor=0;
printf("请输入字符串:");
scanf("%s",str);
char *tempStr = str;
while (*tempStr != '\0')
{
char ch = *tempStr;
if ((ch>='a'&&ch<='z')||(ch>='A'&&ch<='Z'))
{
resultStr[cursor] = ch;
cursor++;
}
tempStr++;
}
printf("输入字符为:%s
输出字符为:%s
",str,resultStr);
system("pause");
return 0;
}
2个程序我都写了
#include<stdio.h>
#include<string.h>
int main()
{
char a[1000];
printf("输入字符串");
gets(a);
printf("输入需要查找的字符");
char p=getchar();
int i,m=strlen(a);
for(i=0;i<m;i++)
{
if(a[i]==p)
break;
}
if(i==m) printf("-1\n");
else printf("%d\n",i+1);
return 0;
}
#include<stdio.h>
#include<string.h>
int main()
{
char a[100];
printf("输入字符串");
gets(a);
int m=strlen(a),i,ABC=0,abc=0,num=0;
for(i=0;i<m;i++)
{
if(a[i]>='A'&&a[i]<='Z') ABC++;
else if(a[i]>='a'&&a[i]<='z') abc++;
else if(a[i]>='0'&&a[i]<='9') num++;
}
printf("大写字母个数:%d\n",ABC);
printf("小写字母个数:%d\n",abc);
printf("数字个数:%d\n",num);
return 0;
}
第2题
#include <iostream>
using namespace std;
int main(void)
{
#define szSTR 80
char s[szSTR], x[szSTR]; char c = 0;
cin.getline (s, '\n');
cin.getline(x, '\n');
c = x[0];
int i = 0;
do {
if (!s[i]) break;
if (s[i++] == c) {
cout << i << endl;
return 0;
}//end if
}while(i < szSTR);
cout << -1<<endl;
return 0;
}
第3题:
#include <iostream>
using namespace std;
int main(void)
{
#define szSTR 80
char s[szSTR]; char c = 0;
cin.getline (s, '\n');
int alpha = 0;
int number = 0;
int space = 0;
int other = 0;
for(int i = 0; i < szSTR; i ++) {
c = s[i];
if (!c) break;
if (c == ' ' || c == '\t') { space ++; continue ; } // 注意这里把跳格也当成空格计算
if (c >= '0' && c <= '9') { number ++; continue; }
if (c >= 'a' && c <= 'z') { alpha ++; continue; }
if (c >= 'A' && c <= 'Z') { alpha ++; continue; }
other ++;
}
cout<<"数字"<<number<<"个,字母"<<alpha<<"个,空格"<<space<<"个,其他字符"<<other<<"个"<<endl;
return 0;
}
#include <stdio.h>
#include <string.h>
int find(char str[], char c)
{
int i = 0;
while (i++ < (int)strlen(str) && *str++ != c);
return i >= (int)strlen(str) ? -1 : i - 1;
}
void cout(char str[])
{
int uc = 0, lc = 0, nc = 0;
do
*str >= 'A' && *str <= 'Z' ? uc++ : *str >= 'a' && *str <= 'z' ? lc++ : *str >= '0' && *str <= '9' ? nc++ : 0;
while (*str++);
printf("大写字母个数 : %d\n小写字母个数 : %d\n数字个数 : %d", uc, lc, nc);
}
void main()
{
printf("位置为 : %d\n", find("afdsj", 'f'));
cout("AAio14sF");
}
C语言用数组,输入一字符串(长度小于20),输出其中小写字母个数 ._百度...
include <stdio.h> int main(void){ char str[20] = {'\\0'};int i = 0;int num_low = 0;fgets(str, 20, stdin);while ('\\0' != str[i]){ if (('a' <= str[i]) && ('z' >= str[i])){ num_low++;} i++;} printf("%d\\n", num_low);return 0;} ...
...从键盘上输入一行字符串,存入一个字符数组,然后输出该字符串_百度...
while(cin.get(tmp)){ if(tmp=='\\n')break;if(tmp<='z'&&tmp>='a')tmp=tmp-32;fout<<tmp<<flush;} fout.close();ifstream fin("test.txt");char ch[200];fin.getline(ch,200);cout<<ch<<endl;fin.close();return 0;} 干嘛非要用数组呢,c++的string字符串类型不更安全。
C++ 输入一行字符串,内有数字和非数字字符,将其中连续的数字作为一个...
int chompnum(char* str, char** to){ int dig = 0; int num = 0; while (*str) { if (*str >= '0' && *str <= '9') { dig++; } else if (dig) { to[num] = (char*) malloc(dig + 1); memcpy(to[num], str-dig, dig); to[...
C++中怎么从一行 进行数组的输入
int n=0;printf("please enter the number:\\n");scanf("%d",&n);int *number=new int[n];for(int i=0;i<n;++i)scanf("%d ",&number[i]);望采纳,谢谢
编程 把一个字符串(长度不超过10),放到字符数组中。输入一个字母,如果...
include<stdio.h> include<string.h> int main { char str[128],c;int i;printf("请输入一个字符串:");gets(str);printf("请输入要查找的字符:");c=getchar();for(i=0;str[i];i++){ if(c==str[i]){ puts("yes");return 0;} } puts("no");return 0;} ...
...请看例子: 如 输入123,结果显示字符串长度为23(不确
这个问题出现的主要原因是你对strlen这个函数不理解,这个函数的工作原理是从key的key[0]开始到遇到第一个'\\0'字符位置为止,算作这个字符数组的长度,而你不加'\\0'则它会找到k[12]以后的'\\0',你可以做这样一个实验,在key的其他位置设置'\\0',比如key[6]位置,那么strlen(key)之后的值会是7...
输入一个任意字符串存入字符数组中,求其字符串长度(不能使用函数)
= p; int i=0; memset(p,0,100); printf("输入字符串:"); scanf("%s",p); \/\/getchar(); while(*p != '\\0'){ i++; p++; } printf("字符串是:%s,长度是:%d",str,i); free(p); return 0;} ...
请编写程序.输入一行字符(用回车结束),输出每个字符以及对应的ASCii码...
c语言下为:include \\"stdio.h\\"main(){ char a[50]; \/*定义字符数组*\/ int i;gets(a); \/*输入字符串*\/ for(i=0;i<strlen(a);i++) \/*strlen()返回字符串a的长度*\/ { printf("\\t字符:%c\\tASSIC码:%d",a[i],a[i]); \/*%d输出ASSIC码*\/ if(i%3) ...
C++ 输入一行字符,分别统计出其中英文字母个数~~
include <stdio.h> int main(){ char c;int letters=0,space=0,digit=0,other=0;printf("请输入一行字符:");while ((c=getchar())!='\\n'){ if (c >= 'a'&&c <= 'z' || c >= 'A'&&c <= 'Z'){ letters++;} else if (c == ' '){ space++;} else if (c >=...
c语言题目:从键盘输入一个字符串存入数组s[80],统计该字符串的长度并...
include<stdio.h> include<string.h> int main(){ char s[80];int len,i;gets(s); \/\/输入一段字符 len=strlen(s); \/\/计算字符串长度 for(i=0;i<len;i++){ if(s[i]>='a'&&s[i]<='z') \/\/将小写字母转换为大写 s[i]=s[i]-32;} printf("%d\\n",len); ...