C++ 数组 输入一行字符串(长度小于80个字符,只有字母和数字),统计其中大写字母、小写字母和数字的个数

编程题2:分别输入一行字符串和一个字符,查找字符串是否含有改字符,若含有则输出该字符第一次出现的位置,否则输出-1;3.编程题3:输入一行字符串(长度小于80个字符,只有... 编程题2:分别输入一行字符串和一个字符,查找字符串是否含有改字符,若含有则输出该字符第一次出现的位置,否则输出-1;
3. 编程题3:输入一行字符串(长度小于80个字符,只有字母和数字),统计其中大写字母、小写字母和数字的个数。
救命呀 高手来
分别输入一行字符串和一个字符,查找字符串是否含有该字符,若含有则输出该字符第一次出现的位置,否则输出-1】
我这样写
#include <iostream>
using namespace std;
int main()
{
char a[1000];
int i,m;
cout<<"输入字符串:"<<endl;
cin>>a[i];
char p=getchar();
cout<<"输入需要查找的字符:"<<endl;
cin>>p;
for(i=0;i<1000;i++)
{if(a[i]==p)
m=i;
else m=-1;
break;
}
cout<<m<<endl;
return 0;
}
但错了
哪里错了??
高手来
我是新手菜鸟
展开
 我来答
珈蓝惜梦qF
2019-10-15 · TA获得超过654个赞
知道答主
回答量:33
采纳率:0%
帮助的人:1.3万
展开全部

源程序代码以及算法解释如下:

#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\n小写字母个数:%d\n大写字母个数:%d\n", 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\n输出字符为:%s\n",str,resultStr);

system("pause");

return 0;

}



德银河Nh
推荐于2016-09-04 · TA获得超过356个赞
知道小有建树答主
回答量:255
采纳率:0%
帮助的人:302万
展开全部
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;
}
本回答被提问者采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
enochwills
2010-05-27 · TA获得超过4793个赞
知道大有可为答主
回答量:2031
采纳率:96%
帮助的人:1648万
展开全部
第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;
}
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
yicaifenchen
2010-05-27 · 超过46用户采纳过TA的回答
知道答主
回答量:192
采纳率:0%
帮助的人:144万
展开全部
#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");
}
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(2)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式