主题:请教,关于串的问题
ekincheng
[专家分:0] 发布于 2006-04-01 17:31:00
关于串的问题
1.编写算法,求串s所含不同字符的总数和和每种字符的个数.
2.在Hstring存储结构上实现删除某个字符串中所有字符c(c字符的值由参数给出).
回复列表 (共4个回复)
沙发
rickone [专家分:15390] 发布于 2006-04-01 22:17:00
1,所有字符出现的次数用一个数组保存v[128]={0}
给出一个串s,从串上读一个字符c,那么v[c]++
2,Hstring是什么结构呢?
如果是char [],删除一个就是把后面的往前移动一格。
板凳
海上飞洪 [专家分:520] 发布于 2006-04-01 23:02:00
[quote]
2,Hstring是什么结构呢?
[/quote]
typedef struct {
char *ch;
int length;
}HString;
3 楼
冷月星光 [专家分:16520] 发布于 2006-04-03 12:53:00
#include<stdio.h>
void main()
{
int number=0,letter=0,space=0,other=0;
char c;
printf("请输入字符串:");
while((c=getchar())!='\n')
{
if (c>='a'&&c<='z'||c>='A'&&c<='Z')
letter++;
else if (c>='0'&&c<='9')
number++;
else if (c==' ')
space++;
else
other++;
}
printf("字符共有:%d,数字共有:%d,空格共有:%d,其他字符共有:%d\n",letter,number,space,other);
}
4 楼
tld5yj [专家分:1310] 发布于 2006-04-03 18:19:00
我试一下第二个问题。
#include<stdio.h>
#define maxsize 100
#define null 0
typydef struct string
{char a[maxsize];
int strlen;
}string;
main()
{string s,a[maxsize],strlen;
char *p;
char c;
s=init();
printf("Please input the word you want to delete:\n");
c=getchar();
p=a;
for(p=a;*p!=null;p++)
{if(*p==c)
delete(a,p);
}
printf("The rivised string is:\n");
p=a;
for(p=a;p!=null;p++)
printf("%c ",*p);
}
string *init()
{string s;
char *p;
char d;
int i=0;
for(;d!=null;)
{p=s=(string*)malloc(sizeof(string));
d=getchar();
*p=d;
i=i+1;
}
strlen=i;
return(s);
}
string *delete(string *s,char *p)
{char c;
p=s;
for(p=s;*p!=null;p++)
{if(*p=c&&*p!=null)
*p=*(p+1);
}
return(s);
}
我的想法就是这样了,不过可能会有语法错误,如果实在不堪入目,请原谅!如有可能,请帮忙改正,谢谢!
我来回复