
跪求C语言程序小设计…………急急急急急…………
输入以“&”为结束字符的字符串,编程统计每个在串中重复出现的字母第一次出现和最后一次出现之间有多少个字符。字母不分大小写。要用指向一维数组的指针完成。谢谢啦………………快...
输入以“&”为结束字符的字符串,编程统计每个在串中重复出现的字母第一次出现和最后一次出现之间有多少个字符 。字母不分大小写。
要用指向一维数组的指针完成。
谢谢啦………………快呀 ……………… 展开
要用指向一维数组的指针完成。
谢谢啦………………快呀 ……………… 展开
2个回答
展开全部
#include <stdio.h>
int main(void)
{
int i;
int b[26], e[26];
char s[200];
char *p;
printf("input a string: ");
gets(s);
for (i = 0; i < 26; i++)
{
b[i] = 0;
e[i] = 0;
}
for (i = 0, p = s; *p != '&'; i++, p++)
{
if (*p >= 'a' && *p <= 'z')
{
if (b[*p - 'a'] == 0)
{
b[*p - 'a'] = i + 1;
}
else
{
e[*p - 'a'] = i + 1;
}
}
else if (*p >= 'A' && *p <= 'Z')
{
if (b[*p - 'A'] == 0)
{
b[*p - 'A'] = i + 1;
}
else
{
e[*p - 'A'] = i + 1;
}
}
}
for (i = 0; i < 26; i++)
{
if (e[i] != 0)
{
printf("%c: %d ", 'A' + i, e[i] - b[i] - 1);
}
}
}
int main(void)
{
int i;
int b[26], e[26];
char s[200];
char *p;
printf("input a string: ");
gets(s);
for (i = 0; i < 26; i++)
{
b[i] = 0;
e[i] = 0;
}
for (i = 0, p = s; *p != '&'; i++, p++)
{
if (*p >= 'a' && *p <= 'z')
{
if (b[*p - 'a'] == 0)
{
b[*p - 'a'] = i + 1;
}
else
{
e[*p - 'a'] = i + 1;
}
}
else if (*p >= 'A' && *p <= 'Z')
{
if (b[*p - 'A'] == 0)
{
b[*p - 'A'] = i + 1;
}
else
{
e[*p - 'A'] = i + 1;
}
}
}
for (i = 0; i < 26; i++)
{
if (e[i] != 0)
{
printf("%c: %d ", 'A' + i, e[i] - b[i] - 1);
}
}
}
2009-06-19
展开全部
123
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询