删除字符串,找错
//编写程序从字符串s中删去所有子字符串t(如果s不包含t,则不删除)。#include<stdio.h>
#define N 12
#define n 3
char my_delete(char *s,char *t)
{ int k=0;
for(int i=0;i<N;i++)
for(int j=0;j<n;j++)
if(s==t&&t!='\0')
{k=i; s='\0';}
}
main()
{
char s="aaaabbaaabb";
char t="bb";
my_delete(s,t);
puts(s);
}
结果为
aaaa
请大佬帮帮忙,谢谢 本帖最后由 jhq999 于 2021-12-11 11:32 编辑
#include<stdio.h>
#define N 12
#define n 3
void my_delete(char *s,char *t)
{ int i=0,j=0, k=0;
for(i=0;i<N;i++)
for( j=0;j<n;j++)
if(s==t&&t!='\0')
{k=i; s='\0';}
for( i=0;s;i++);
for(j=i;j<N;j++)/////////
{
if(s)s=s;
}
s='\0';
}
int main()
{
char s="aaaabbaaabb";
char t="bb";
my_delete(s,t);
puts(s);
return 0;
}
#include <stdio.h>
void del(char*, char);
int main(){
char str = "banana";
del(str, 'a');
printf("%s", str);
return 0;
}
void del(char str[], char c){
for(int i = 0; str; i++)
if(str == c){
for(int j = i; str; j++)
str = str;
}
} jhq999 发表于 2021-12-11 11:31
为什么for( i=0;s;i++);要加分号呀,大佬 put(s),字符串在内存中就是以 \0为结尾的, {k=i; s='\0';}你的这串代码,在字符串里遇见b就直接加上 \0,就代表这个字符串到这就结束了,所以到后边就都无法输出 18202486056 发表于 2021-12-11 13:37
put(s),字符串在内存中就是以 \0为结尾的, {k=i; s='\0';}你的这串代码,在字符串里遇见b就直接加 ...
谢谢
本帖最后由 jackz007 于 2021-12-11 14:06 编辑
#include<stdio.h>
char * my_delete(char *s , char * t)
{
int i , j , k , n ;
for(n = 0 ; s ; n ++) ;
for(i = 0 ; i < n ; i ++) {
for(j = 0 ; s && s == t ; j ++) ;
if(! t) {
for(k = 0 ; k < n - (i + j) + 1 ; k ++) s = s ;
n -= j ;
i -- ;
}
}
return s ;
}
main()
{
char s[] = "aaaabbaaabb" , t[] = "bb" ;
puts(my_delete(s , t)) ;
}
编译、运行实况:
D:\00.Excise\C>g++ -o x x.c
D:\00.Excise\C>x
aaaaaaa
D:\00.Excise\C> jackz007 发表于 2021-12-11 13:51
编译、运行实况:
谢谢 本帖最后由 jhq999 于 2021-12-11 15:20 编辑
辞树 发表于 2021-12-11 12:05
为什么for( i=0;s;i++);要加分号呀,大佬
找到第一个删除的位置,也就是样例里第一个b的位置 本帖最后由 jhq999 于 2021-12-11 16:46 编辑
愧领了,下面是改完的代码{:5_105:}
#include<stdio.h>
#define N 12
#define n 3
void my_delete(char *s,char *t)
{ int i=0,j=0, k=N;
for(i=0;s;i++)
{
for( j=0;t;j++)
if(s!=t)break;
if (j==n-1)
{
for( j=i;j<=k;j++)s=s;
k-=n-1;
i--;
}
}
}
int main()
{
char s="aaabbbaaabb";
char t="bb";
my_delete(s,t);
puts(s);
return 0;
}
页:
[1]