#include <stdio.h>
#include <string.h>
void splitstring(char*, char*, char*);
int main(void)
{
char str[41];
char str1[21];
char str2[21];
char* ptr = str;
char* ptr1 = str1;
char* ptr2 = str2;
printf("input str: ");
gets(str);
printf("%s -> ", ptr);
splitstring(ptr, ptr1, ptr2);
printf("%s and %s\n", ptr1, ptr2);
return 0;
}
void splitstring(char* str, char* word1, char* word2){
int size = strlen(str);
int half;
if(size % 2 == 0){
half = size / 2;
strncpy(word1, str, half);
strncpy(word2, str + half, half);
}
else{
half = (size-1 / 2);
strncpy(word1, str, half);
strncpy(word2, str + half, half+1);
}
return;
}
문장을 반으로 쪼개서 두 개의 단어로 나누는 프로그램을 만들어보려고 하는데
abcdef를 입력하면
abca and def* 라고 출력됩니다.
배열에 쓰레기 값으로 인한건가요?
댓글 0