• Revista PROGRAMAR: Já está disponível a edição #53 da revista programar. Faz já o download aqui!

suzy

[C] Ajuda: Intercalar duas strings

8 mensagens neste tópico

:(

Primeira String: Bom Dia

Segunda String: Como Vai o amigo?

terceira String: Bcoomm dv

Ou seja o programa vai ter que intercalar as letras de cada string  :hmm:

eu comçei a fazer assim: fiz um ciclo para cada string para percorrer os caracteres

:wallbash: tou no caminho certo?

#include<stdio.h>
#include<string.h>
#define N 20

main()
{
char str1[N], str2[N],i,j,nova[N],que;
printf(" introduza a 1 string\n");
gets(str1);
printf(" introduza a 2 string\n");
gets(str2);
   for(i=0;i<N;i++);
   {
      for(j=0;j<N;j++);
      {
       if(str1[i]!='\0' && str2[i]='\0')
        {
         if(str1[i%2!=0])
          {
          str1[i]==nova[que] 


0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

Talvez estejas... mas falta aí metade do código...

De qualquer maneira parece-me que não estás a ter suficiente cuidado com o facto de uma string ser maior do que a outra... porque mesmo que uma das strings acabe o ciclo continua.

Também ainda não percebi o que é suposto ficar na variável que até porque estás a fazer nova[que] (o que não devia ser um inteiro?).

E ainda, instrução

str1[i]==nova[que]

não faz nada, apenas verifica se str1 é igual a nova[que].

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

Penso que não precisas do último if. E o tamanho da string final tem de ter mais espaço, multiplica por 2 por exemplo.

De resto o raciocínio está mais ou menos correcto. Tenta resolver por ti e depois posta aqui a solução.

PS: Finalmente aprendeste a utilizar o GeSHi :(;)

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

:wallbash:

#include<stdio.h>
#include<string.h>
#define N 20

main()
{
char str1[N], str2[N],i,j,nova[N],que;
printf(" introduza a 1 string\n");
gets(str1);
printf(" introduza a 2 string\n");
gets(str2);
   for(i=0;i<N;i++);
   {
      for(j=0;j<N;j++);
      {
       if(str1[i]!='\0' && str2[i]='\0')
        {
         if(str1[i%2!=0])
          {
          str1[i]==nova[que] ;
          }
         else
          {
          str2[j]==nova[que];
          }
       }
   }
           printf(" a nova string ´%c\n",nova[que]);
fflush(stdin);
getchar();
}

          Malta, agora tou a ter dificuladdes, da-me erro, como faço no fim :down: please

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

Não inicializas-te a variável que a 0 !

Depois tens de a incrementar cada vez que passas para lá um caracter: que++;

:-[ nao sei porque o geshi nao deu :cheesygrin:

Podes editar o post.

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

O GeSHI não deu porque meteste o código fora das tags :(

         if(str1[i%2!=0])
          {
          str1[i]==nova[que] ;
          }
         else
          {
          str2[j]==nova[que];
          }

Tens aqui um enorme erro de sintaxe.

Primeiro para copiar de uma string para a outra usa-se apenas um sinal de =. Dois sinais de = usam-se quando queres comparar duas variáveis.

Segundo o que tu queres é meter os caracteres das strings str1 e str2 na string nova, portanto a ordem é a contrária (nova do lado esquerdo e str1 e str2 do lado direito do sinal de igual).

Além disso não corrigiste nenhum dos erros que mencionei no meu primeiro post...

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

Primeira String: Bom Dia

Segunda String: Como Vai o amigo?

terceira String: Bcoomm dv

Na terceira string só se intercalam os caracteres até ao fim da palavra da primeira ou segunda string certo? Ou seja, assim que a palavra se acaba (tanto faz ser a da primeira ou da segunda), passamos para a seguinte?

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

Crie uma conta ou ligue-se para comentar

Só membros podem comentar

Criar nova conta

Registe para ter uma conta na nossa comunidade. É fácil!


Registar nova conta

Entra

Já tem conta? Inicie sessão aqui.


Entrar Agora