黑马程序员技术交流社区
标题:
计算字符串中每种字符出现的次数。“Welcome to Chinaworld”...
[打印本页]
作者:
haojuncong
时间:
2015-1-18 12:23
标题:
计算字符串中每种字符出现的次数。“Welcome to Chinaworld”...
花了一个小时终于做出来了
当要计算空格得字数得时候:代码如下
int main()
{
char str[] = "Welcome to Chinaworld";
int a[50] ; //用于标记字母
for (int i = 0; i < strlen(str); i++)
{
a[i] = 1; //初始化,所有的标记都为1
}
for(int i = 0;i < strlen(str);i++)
{
int count = 1;
if (a[i] == 1)
{
for (int j = i+1; j < strlen(str); j++)
{
if ((str[j] >= 'A' && str[j] <= 'Z')||(str[j] >= 'a' && str[j] <= 'z'))
{
if ((str[i] == str[j])||(str[i] == (str[j]-32))||(str[i] == (str[j]+32)))
{
a[j] = 0; //当被计算,归0
count++;
}
}else
{
if (str[i] == str[j])
{
a[j] = 0; //当被计算,归0
count++;
}
}
}
printf("%c-%d\n ",str[i],count);
}
}
return 0;
}
复制代码
当只需要计算字母的个数的时候,只需要多加一个字母的判断
int main()
{
char str[] = "Welcome to Chinaworld";
int a[50] ; //用于标记字母
for (int i = 0; i < strlen(str); i++)
{
a[i] = 1; //初始化,所有的标记都为1
}
for(int i = 0;i < strlen(str);i++)
{
int count = 1;
if (((str[i] >= 'A' && str[i] <= 'Z')||(str[i] >= 'a' && str[i] <= 'z'))&&(a[i] == 1))
{
if ((str[i] >= 'A' && str[i] <= 'Z')||(str[i] >= 'a' && str[i] <= 'z'))
{
for (int j = i+1; j < strlen(str); j++)
{
if ((str[j] >= 'A' && str[j] <= 'Z')||(str[j] >= 'a' && str[j] <= 'z'))
{
if ((str[i] == str[j])||(str[i] == (str[j]-32))||(str[i] == (str[j]+32)))
{
a[j] = 0; //当被计算,归0
count++;
}
}
}
}
printf("%c-%d\n ",str[i],count);
}
}
return 0;
}
复制代码
作者:
爱在西元前
时间:
2015-1-18 12:38
:lol 加油加油 ----我要一步一步往上爬~
作者:
woaiwomama
时间:
2015-1-18 12:42
不懂啊.......
作者:
浅唱丶iii
时间:
2015-2-28 14:33
加油加油 ----
作者:
keeganlee
时间:
2015-2-28 14:53
写的挺好的 ,我觉得用结构体数组来做应该更简单,有空你可以写一下试试
欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/)
黑马程序员IT技术论坛 X3.2