在字符串str中删除所有字符c,返回数组元素个数
救命每次返回字符串的时候怎么都少掉第一位啊
#include <stdio.h>
#include <string.h>
int StrDelChar(char str[], char c){
int p=0,q=0;
while((str+p)!='\0'){
p++;
if((str+p)!=c){
(str+(q++))=(str+p);
}
}
return q;
}
int main(){
char s[1000],c;
int n, i = 0;
while ((s[i++] = getchar()) != '\n');
s[i - 1] = 0;
c = getchar();
n = StrDelChar(s, c);
printf("%d %s", n,s);
return 0;
}
#include <stdio.h>
#include <string.h>
int StrDelChar(char str[], char c){
int p=0,q=0;
while((str+p)!='\0'){
if((str+p)!=c){
(str+(q++))=(str+p);
}
p++;
}
return q;
}
int main(){
char s[1000],c;
int n, i = 0;
while ((s[i++] = getchar()) != '\n');
s[i - 1] = 0;
c = getchar();
n = StrDelChar(s, c);
printf("%d %s", n,s);
return 0;
}
p++; 放if下边
你题目的解答代码如下:
#include <stdio.h>
#include <string.h>
int StrDelChar(char str[], char c)
{
int p = 0, q = 0;
while (*(str + p) != '\0')
{
if (*(str + p) != c)
{
*(str + (q++)) = *(str + p);
}
p++; //放if下边
}
*(str + q) = 0; //字符串结束僧设置0
return q;
}
int main()
{
char s[1000], c;
int n, i = 0;
while ((s[i++] = getchar()) != '\n')
;
s[i - 1] = 0;
c = getchar();
n = StrDelChar(s, c);
printf("%d %s", n, s);
return 0;
}
您好,我是有问必答小助手,您的问题已经有小伙伴帮您解答,感谢您对有问必答的支持与关注!如有帮助,请点击我的回答下方的【采纳该答案】按钮帮忙采纳下,谢谢!