Pessoal tenho uma dúvida....

Pessoal tenho uma dúvida no seguinte exercicio: "Construa um programa que pede duas strings (str1 e str2) e cria uma nova string com os caracteres alternados, ou seja: os dois primeiros caracteres são o primeiro caracter da str1 e o primeiro da str2, o terceiro e quarto caracteres sao o segundo caracter da str1 e o segundo da str2 e assim sucessivamente. Por exemplo, a string "Ola" e "IPP" dariam origem a "OIlPaP".

Eu já fiz uma parte do programa, consigo juntar duas strings mas nao alternadamente:

O meu código está aqui:
Código:
#include <stdio.h>
 #include <conio.h>

 void main()
{


    int i=0;
    char s[50];
    char r[50];
    char a[102];
    char *p1;
    char *p3;
    clrscr();

    printf("insira uma string:");
    gets(s);
    printf("insira outra string:");
    gets(r);

    p1=s;
    p3=a;
    while(*p1!='\0')
    {
      *p3=*p1;
      p1++;
      p3++;
    }

    p1=r;
    while(*p1!='\0')
    {
      *p3=*p1;
      p1++;
      p3++;

    }
    *p3='\0';

    printf("%s",a);

}
Precisava da vossa ajuda para por isto alternado.:005:
Abraços... Biokiller
 
Última edição pelo moderador:
Assim por alto, e considerando que "#" indica "tamanho da string" (a notação é minha, não é standard):

- #str3 = #str1 + #str2
- Assumindo que o #str1 = #str2, fazes um ciclo, com variável "k", e entre 0 e #str1 - 1
- - str3[k] = str1[k]
- - str3[k+1] = str2[k]
- - k = k + 2

Isto deve chegar para que str3 tenha as strings str1 e str2 "misturadas". Consegui fazer-me entender? :P
 
Back
Topo