Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #include <stdio.h>
- #include <string.h>
- /*Receber a string 1 e a string 2, e um número, e inserir string 2 a partir da posição do número dado na string 1*/
- int main(void){
- int i,k,j=0,n;
- char s1[100],s2[100],s3[200];
- puts("Entre com a sua string:\n");
- gets(s1);
- fflush(stdin);
- puts("Entre com a outra string:\n");
- gets(s2);
- /*Esse teste impede o usuário de inserir um número inválido*/
- while(n<0||n>strlen(s1)){
- puts("Entre com a posicao a incluir a outra string:\n");
- scanf("%d",&n);
- if(n<0||n>strlen(s1)){
- puts("Entre com um numero valido:\n");
- scanf("%d",&n);
- }
- }
- /*INSERÇÃO*/
- for(i=0;i<strlen(s1);i++){ /*Varre toda a string 1*/
- s3[i]=s1[i]; /*Vai copiando s1 em s3 até chegar na posição n desejada*/
- if(i==n){
- for(k=n;k<n+strlen(s2);k++){ /*Abre um laço de k a partir de n até k ser igual a tam s2+n.
- Ex.: cachorro verde n = 3. k=3 até k = 8 -> cacverde*/
- s3[k]=s2[j];
- j++; /*Incrementa o j pois estamos copiando de j=0 até o fim de s2*/
- }
- j=n+strlen(s2); /*j será usado em outro laço agora, onde começa depois de cacverde*/
- if(n<strlen(s1)){ /*Caso n seja diferente do tamanho de s1, apenas copiamos o resto de s1 em s3*/
- for(k=j;k<strlen(s1)+j-n;k++){ /*Para k = 8, em cacverde, enquanto k for menor que tam s1+j-n, ou seja,
- cachorro=8, j=cacverde=8, n=3, então, cachorro+cacverde-3 = 13, que é
- o espaço total da s3 + o resto da s1, para adicionar o resto da s1*/
- s3[k]=s1[i]; /*Como o laço parou em i=3, apenas incrementamos o i de s1 agora até o fim,
- no caso de cacverde, o limite é 5, que é o tamanho de horro.*/
- i++;
- }
- }
- }
- else if(n==strlen(s1)){ /*Se o n for igual ao tamanho da string, ocorrerá uma simples concatenação*/
- for(i=0;i<strlen(s1);i++)
- s3[i]=s1[i];
- for(j=0;j<strlen(s2);j++)
- s3[strlen(s1)+j]=s2[j];
- s3[strlen(s1)+strlen(s2)]='\0';
- }
- }
- s3[strlen(s1)+strlen(s2)]='\0'; /*Em qualquer dos casos, o tamanho de s3 será igual à soma de s1 e s2*/
- /*puts(s1);
- puts(s2);*/
- printf("A nova string sera:\n%s\n",s3);
- system("pause");
- return 0;
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement