일단 대학교 2학년 입니다..
이정도의 학교에서 배우는 수준이라고 생각해주세요..
아래는 이런 문제입니다.
15개의 문장를 2번 받아서
첫번째 받은 문장의 4번째 글자 뒤에
2번째 문장이 오게 하고
그다음 다시 남은 첫번째 문장이 나오게 하는건데요
스트링함수 전혀 쓰지 말고 기본으로 하라고 하더라구요..
함수를 꼭 사용하게 하라고 해서 어찌 짰는데 리턴값이 이상한거 같아요..
저 함수를 메인에 넣어서 실행하면 잘 되는데
함수에서 실행해서 리턴받으니 이상한 값만 나오네요..
어떤문제인지라도 가르쳐 주십사 하고 찾는중 이곳으로 왔어요..
부탁드립니다(__)
#include <stdio.h>
char funchar(char a[15], char b[15], int c, int d);
int main(void)
{
//변수선언
char inp1[100];
char inp2[100];
char outp[30];
int i;
int cnt1;
int cnt2;
//받아오기
printf("첫번째 문장을 입력하시오:");
gets(inp1);
printf("두번째 문장을 입력하시오:");
gets(inp2);
//15자 글자 제한 & 카운트 초기화
inp1[15] = '\0';
inp2[15] = '\0';
cnt1=0;
cnt2=0;
//입력받은 글자수 카운트
for (i=0;i<=15;i++)
{
if (inp1[i] == '\0')
{
cnt1 = i+1;
break;
}
}
for (i=0;i<=15;i++)
{
if (inp2[i] == '\0')
{
cnt2 = i;
break;
}
}
outp[30] = funchar(inp1,inp2,cnt1,cnt2);
//결과물 출력
printf("4번째에 끼워진 문장은 다음과 같다:");
for (i=0;i<=30;i++)
{
printf("%c",outp[i]);
}
printf("\n");
printf("%s",outp);
}
char funchar(char a[15], char b[15], int c, int d)
{
static char out[30];
int i;
//4글자 까지 변수에 넣기
for (i=0;i<4;i++){
out[i] = a[i]; }
//4글자 이후 문장 넣기
for (i=0;i<d;i++){
out[(i+4)] = b[i]; }
//남은 문장 넣기
for (i=4;i<c;i++){
out[(i+d)] = a[i]; }
//문장완성 이후 문장 종료 삽입
out[c+d] = '\0';
return out[30];
}
|