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]
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: