Llaverola Posted November 7, 2007 at 03:24 PM Report Share #145904 Posted November 7, 2007 at 03:24 PM ola pessoal. fiz uma programa que elimina uma substring numa outra string exemplo: STR = RICARDO COELHO, SUBSTR=COELHO; ele elimina o coelho. até aki td bem. mas agora quero eliminar TODAS as substrings e n apenas uma.. STR= RICARDO COELHO COELHO. SUBSTR= COELHO...quero q elimine os dois COELHO e n apenas um. o codigo a seguir elimina apenas um. preciso da vossa ajuda para fazer alguma modificação no codigo abaixo para conseguir eliminar TODAS as substrings. obrigado APENAS INSERI A FUNÇÃO. n inseri o main, se for necessario insiro. ajudem-me. obrigado char *del_sub(char str[], char sub[]) { int i, j, len, len2, pos,x=0; char *s; len = strlen(str); //tamanho da string s = strstr(str, sub); //sub dentro de str (endereço) pos = s - &str[0]; //endereço da sub na str - endereço do 1º caracter de str len2 = strlen(sub); // tamanho da substring for (i=pos;i<=len-len2; i++) // tamanho inicial menos o da substring. /**tenho ricardo, quero tirar o car o str=7 e o substr=3. 7-3 = 4. quer dizer que vão sobrar 4 caracteres na string final (RIDO) por isso vai desde pos que é 2 até á posiçao 4 e vai eliminando*/ { str[i]=str[i+len2]; } } Link to comment Share on other sites More sharing options...
TheDark Posted November 7, 2007 at 07:01 PM Report Share #145977 Posted November 7, 2007 at 07:01 PM Tens que pôr o código que tens aí dentro de um loop que não pára enquanto strstr não der NULL. Pensa em while ((s = strstr(str, sub)) != NULL) e adapta o teu código 🙂 Desaparecido. Link to comment Share on other sites More sharing options...
Recommended Posts
Create an account or sign in to comment
You need to be a member in order to leave a comment
Create an account
Sign up for a new account in our community. It's easy!
Register a new accountSign in
Already have an account? Sign in here.
Sign In Now