回 帖 发 新 帖 刷新版面

主题:请教,关于串的问题

关于串的问题
1.编写算法,求串s所含不同字符的总数和和每种字符的个数.
2.在Hstring存储结构上实现删除某个字符串中所有字符c(c字符的值由参数给出).

回复列表 (共4个回复)

沙发

1,所有字符出现的次数用一个数组保存v[128]={0}
给出一个串s,从串上读一个字符c,那么v[c]++

2,Hstring是什么结构呢?

 如果是char [],删除一个就是把后面的往前移动一格。

板凳

[quote]

2,Hstring是什么结构呢?

 [/quote]
typedef struct {
char *ch;
int length;
}HString;

3 楼

#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 楼

我试一下第二个问题。

#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);
}
我的想法就是这样了,不过可能会有语法错误,如果实在不堪入目,请原谅!如有可能,请帮忙改正,谢谢!

我来回复

您尚未登录,请登录后再回复。点此登录或注册