Çözüldü C dilinde karakter dizisi nasıl birleştirilir?

Bu konu çözüldü olarak işaretlenmiştir. Çözülmediğini düşünüyorsanız konuyu rapor edebilirsiniz.

metinsama

Kilopat
Katılım
7 Aralık 2014
Mesajlar
810
Çözümler
5
Arkadaşlar merhaba C ödevim var 2-3 tane karakter dizisini birleştirip tek bir dizi haline getirmem gerekiyor. Bunu kısmen çözdüm fakat son birleştirilen dizinin sonunda garip şekiller çıkıyor bunu nasıl çözebilirim?
Gördüğünüz gibi arkadaşlar 1011'i yazdırdıktan sonra cmd.exe gibi birşey yazdırıyor ben bunun önüne nasıl geçebilirim?
[CODE lang="bash" title="Çıktı" highlight=""4""]C:\Users\xxx\Documents\C>gcc technopat.c

C:\Users\xxx\Documents\C>a.exe
123/456/789/1011\cmd.exe┐~} /æ[/CODE]
[CODE lang="c" title="C Kodu"]#include <stdio.h>
#include <string.h>
#include <stdlib.h>

int main(int argc, char const *argv[])
{
char *str = (char *)malloc(16 * sizeof(char));
int iter = 0;
char *arr1 = "123/";
char *arr2 = "456/";
char *arr3 = "789/";
char *arr4 = "1011";
void(*arr_table[]) = { arr1, arr2, arr3, arr4};

for (int i = 0; i < 4; i++)
{

memcpy((str + (iter)), arr_table, strlen(arr_table));
iter += strlen(arr_table);
}
printf("%s",str);
free(str);
}

[/CODE]
 
Son düzenleyen: Moderatör:
Çözüm
C:
#include <stdio.h>
#include <locale.h>
#include <string.h>
#include <stdlib.h>

int main(void){
    system("chcp 1254");
    system("cls");
    setlocale (LC_ALL,"Turkish");
    char y[9999] = "";
    while (1){
    int a = 0;
    printf("Kaç Adet Karakter Dizisi Girilecek:");
    if (scanf("%d",&a) == 0){
        printf("Geçersiz Değer\n");
        getchar();
        continue;
    }
    else{
        for (int i=0; i<a; i++){
         char x[9999];
         printf("\n%d.Karakter:",i+1);
         scanf("%s",x);
         strcat(y,x);
         printf("%s",y);
        }
    }
}
}


strcat() kullanın.
C:
#include <stdio.h>
#include <locale.h>
#include <string.h>
#include <stdlib.h>

int main(void){
    system("chcp 1254");
    system("cls");
    setlocale (LC_ALL,"Turkish");
    char y[9999] = "";
    while (1){
    int a = 0;
    printf("Kaç Adet Karakter Dizisi Girilecek:");
    if (scanf("%d",&a) == 0){
        printf("Geçersiz Değer\n");
        getchar();
        continue;
    }
    else{
        for (int i=0; i<a; i++){
         char x[9999];
         printf("\n%d.Karakter:",i+1);
         scanf("%s",x);
         strcat(y,x);
         printf("%s",y);
        }
    }
}
}


strcat() kullanın.
 
Çözüm

Geri
Yukarı