C语言:如何将字符串数组赋值给一个字符串指针或数组?

[复制链接]
查看11 | 回复3 | 2010-9-20 17:45:58 | 显示全部楼层 |阅读模式
输入一个字符串,再输入一个字符,把字符串中和这个字符都相同的字符删去,输出新的字符。以下是我编的:
void delchar(char *s,char c)
{
int i,j=0;
char sb[100];
for(i=0;*(s+i)!='\0';i++){
if(c==s)
continue;
sb[j++]=s;
}

for(i=0;i
#include
main()
{
char s1[100];
char c1,ch;
void delchar(char *s,char c);
clrscr();
printf("please input a string:\n");
scanf("%s",s1);

ch=getchar();
printf("please input a zifu:\n");

scanf("%c",&c1);

delchar(s1,c1);

printf("%s",s1);

}
在bxy(我的姓名缩写)函数里,我原本是想把sb[]赋值给*s或s[],但是我不知道怎么赋值,所以采用了这种很笨的方法。谁能告诉我怎么直接把sb[]赋值给s?
哦,对了,没有bxy函数,那是另外一题上面的,我记错了。这一提示delchar函数

回复

使用道具 举报

千问 | 2010-9-20 17:45:58 | 显示全部楼层
直接在一个字符串里面按位赋值就可以了。像二楼说的一样。因为你原字符串肯定是大于等于新字符串的,所以定一个变量检查原字符串的位置,定另一个变量检查新字符串的位置。那么第一个变量肯定是大于等于第二个变量的。这样可以把值从第一个变量的地方赋值到第二个变量的位置即可。
回复

使用道具 举报

千问 | 2010-9-20 17:45:58 | 显示全部楼层
void delchar(char *s,char c){int i,j=0;for(i=0;*(s+i)!='\0';i++){ if(c==s)continue; s[j++]=s; }s[j]='\0';}你的意思是不是这样??
回复

使用道具 举报

千问 | 2010-9-20 17:45:58 | 显示全部楼层
void delchar(char *s,char c){ int i,j=0;for(i=0;s;i++){if(c==s)continue;s[j++]=s;}s[j++]=0; }#include#includemai
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

主题

0

回帖

4882万

积分

论坛元老

Rank: 8Rank: 8

积分
48824836
热门排行