|
친절한 답변 감사합니다.
strncpy는 아는데요
제가 만들어보는데 잘 안되서...
근데 이제 제가 뭘 틀렸는지 알겠어요
#include <stdio.h>
#include <string.h>
char *str_cpy(char *, const char *, int nbr);
int main()
{
char input_str[100], output_str[100],strncpy_output[100];
int nbr;
printf("Usage : strings copy_bytes\n");
scanf("%s %d",input_str,&nbr);
printf("Display strings that you inputed...\n");
puts(input_str);
strncpy(strncpy_output,input_str,nbr);
printf("\nUsing strncpy()... \n");
printf("%s\n\n",strncpy_output);
printf("Call str_cpy which I made to operate strncpy func \n");
str_cpy(output_str, input_str, nbr);
printf("After operate str_cpy func\n");
puts(output_str);
}
char *str_cpy( char *output_str, const char *input_str, int nbr)
{
int i;
for(i=0;i<nbr;i++)
output_str[i] = input_str[i];
output_str[i]='\0';
// *output_str++=*input_str++;
// *output_str='\0';
return output_str;
}
화니 님이 쓰신 글 :
: 안녕하세요.. 화니입니다.
:
: 문자열에서 원하는 크기만큼 copy하는 함수로는 strncpy내부 함수가 있습니다.
:
: 구태여 함수를 제작한다면..
: char *str_cpy( char *output_str, char *input_str, int nbr)
: {
: int i;
: for(i=0;i<nbr;i++)
: {
: //원하는 크기가 아직 되지 않더라도 null문자를 만나면 종료하는것이 일반적입니다.
: if(input_str[i]==NULL)
: break;
:
: output_str[i]=input_str[i];
: }
: output_str[i] = NULL;
: return(output_str);
: }
:
:
|