336x280(권장), 300x250(권장), 250x250, 200x200 크기의 광고 코드만 넣을 수 있습니다.

- 프로그램 종료


값에 의한 예외 처리 


if(num==-1){

break;

}




---------


- 문자가 입력이 안되는 프로그램 


버퍼 안에 입력된 문자가 계속 존재, 차 후에 값 입력 불가  ->  fflush(stdin);

입력이 안된다  -> 다른 문자가 들어 왔다 


scanf() 의 리턴값은 -> 성공한 입력 개수 -> 



#include <string.h>

#include <stdio.h>


float hei, wei;

char exit[5]={0};

hei=wei=0;


while(1){


  if(scanf("%f %f, &hei, &wei)!=2){             // scanf의 리턴 값 개수로 문자인지 숫자인지 확인 

gets(exit);

printf("exit: %s\n", exit);


if(!strcmp(exit,"exit")){

printf("종료합니다");

break;

}

printf("문자는 입력할 수 없습니다");

  }


fflush(stdin);

printf("");



-------------



- 포인터 정리 


char array[6]={'H','e','l','l','o','\0'};


ptr=array;

printf("%c\n",array[1]);

printf("%c\n",*(ptr+2));

printf("%c\n",*array+4);

printf("%c\n",ptr[4]);

printf("\n");


ptr=array[3];

printf("%c\n",*ptr++));

printf("%c\n",array++);    //error

printf("%c\n",*ptr);

printf("\n");


ptr=array[2];

printf("%c\n",*ptr--); 

printf("%c\n",*ptr+5);

printf("\n");


ptr=array[4];

printf("%c\n",*--ptr); 

printf("%c\n",*(array+3));



------------------



어셈블리어로 문자열 함수 구현 




-----------


- 문자열


문자의 배열 

문자열은 NULL 문자로 끝난다 


strlen();        // 문자열의 길이 리턴

strcpy();       //문자열 복사

strcat();        //문자열 이어 붙이기

strcmp();       //문자열 비교

strstr();         //문자열 내 특정 문자열 검색

strchr();        //문자열 내 특정 문자 검색




----------------


- strlen()    // NULL 문자를 제외한 문자의 개수 리턴



#include <stdio.h>

#include <string.h>


int main(){

char * string ="Hello";

int nLen =0;


nLen=strlen(string);


printf("string = %s \n", string);

printf("nLen = %d \n", nLen);


return 0;


}



------


mystrlen 구현



int main(){

char * string ="Hello";

int nLen =0;


int mystrlen(char* string);

nLen=mystrlen(string);


printf("string = %s \n", string);

printf("nLen = %d \n", nLen);


return 0;


}


int mystrlen(char * str){       

int i=0;

while(str[i]!=0){        //   while(*s)

i++;

}

return i;

}




---------------------------------------


- strcpy()



int main(){

char src[10]="Hello";

char dest[10]={0};

char* tmp=NULL;


printf("dest : %s \n", dest);


tmp=strcpy(dest, src);


printf("tmp : %s \n", tmp);

printf("dest : %s \n", dest);

printf("tmp Addr : %p, dest Addr : %p\n", tmp,dest);


return 0;

}



------



포인터 이용 



------



mystrcpy() 구현



char* mystrcpy(char* d, char*s){

char *tmp=d;


while(*s!=0){ // while(*s)

*d=*s;

s++;

d++;

}

return d;

}




-----------------------


- strscat()




int main(){

char dest[20]="Hello";

char cat[10]="i2sec";

char* tmp=NULL;


printf("dest : %s \n",dest);


tmp=strcat(dest, cat);


printf("tmp : %s \n", tmp);

printf("dest : %s \n", dest);

printf("tmp Addr : %p, dest Addr : %p \n", tmp, dest);


return 0;


}




------


mystrcat() 구현 




--------------------------


- strcmp()


int main(){

char str1[10]="Hello";

char str2[10]="He1l0";

char str3[10]="Hpllo";

int nResult=0;


nResult=strcmp(str1,str2);

printf("nResult : %d \n",nResult);


nResult=strcmp(str1,str3);

printf("nResult : %d \n",nResult);


str3[1]='e';

nResult=strcmp(str1,str3);

printf("nResult : %d \n", nResult);


return 0;

}



mystrcmp() 구현



----------------------------


- strstr()         //  찾은 곳의 시작 주소를 넘겨줌 



int main(){

char string[20]="apapple";

char *search="app";

char *result =NULL;


result=strstr(string, search);


printf("string addr : %p \n", string);

printf("result addr : %p \n", result);

printf("result : %p \n", result);


return 0;

}



mystrstr() 구현


-----------------------------



- strchr()        



int main(){

char string[20]="Test Hello";

char search ='e';

char *result=NULL;


result=strchr(string, search);


printf("string addr : %p \n",string);

printf("result addr : %p \n",result);

printf("string : %p \n",result);


return 0;

}




mystrchr() 구현



-----------------------------




'C / C++' 카테고리의 다른 글

extra efforts  (0) 2014.09.29
malloc 개념 보충  (0) 2014.09.05
many questions  (0) 2014.08.28
pointer and array  (0) 2014.08.27
function and pointer  (0) 2014.08.26
Posted by af334