strcmp 질문드립니다!
반율하
질문 제목 : strcmp 사용법이 맞는거 같은데 원하는데로 출력이안되네요
다음과 같은 함수에서 if(strcmp(name,b_data[i].name) == 1 || strcmp(name1,b_data[i].name) == 1)
name 으로 입력받은 값과 name1 로 입력받은값이 malloc 으로 동적할당되있는 부분에 할당안되었을시 에러 출력하게 하는 구문인데요 정상적으로 할당되었는데 실행하면 --------------- 잘못된 계좌명입니다 . 다시한번 확인해 주세요 ------------- 문구도 출력되고 정상적으로 이체 되었습니다 이문구도 출력이되네요 ㅠㅠ어느부분이 문제일가요 ??? 도와주세요!
질문 내용 :
void transfer(const char* name,const char* name1,const int money)
{
int i;
for(i=0;i100;i++)
{
if(strcmp(name,b_data[i].name) == 1 || strcmp(name1,b_data[i].name) == 1)
{
printf(\n --------------- 잘못된 계좌명입니다 . 다시한번 확인해 주세요 -------------\n);
Sleep(1500);
break;
}
else if(strcmp(name,b_data[i].name) == 0)
{
if((b_data[i].point-money)=0)
{
b_data[i].point -=money;
}
else if((b_data[i].point-money)0 ){
printf(\n ------------- error : 금액 을 잘못 입력하셨습니다. -------------\n);
Sleep(1500);
return;
break;
}
}
}
계좌가 없을시 나는 오류도 출력하고싶을떄 다음과 같이 선언하면 원하는결과로 출력이안되네요 null 값과 비교하여 하면 계좌없을시 에러가 출력되지않나요???
/*for(i=0;icounter;i++)
{
if(b_data[i].name==NULL || b_data[i].name1==NULL)
{
//b_data[i].point +=money;
printf(\n 계좌가 없는 계좌입니다 \n);
Sleep(1500);
return;
break;
}
}
*/
for(i=0;icounter;i++)
{
if(strcmp(name1,b_data[i].name)==0)
{
b_data[i].point +=money;
printf(\n 정상적으로 이체 되었습니다 \n);
Sleep(1500);
return;
break;
}
}
//return;
}
form style=MARGIN: 0px name=tagForm onsubmit=javascript:oCafeTagRead.updateArticleTag() method=post /form=========================================================== 수정한다음입니다int check(const char* name)
{
for(i=0;i100;i++)
{
if(strcmp(name,b_data[i].name)==0)
{
return i;
}
}
return -1;}void transfer(const char* name,const char* name1,const int money)
{
int i=check(name);
int j=check(name1);if(i==-1)
printf( 출금하시고자하는 계좌명이 없거나 잘못 입력하셨습니다 다시한번 확인해주세요 \n);
else
{
if((b_data[i].point-money)=0)
{
b_data[i].point -=money;
}
else if((b_data[i].point-money)0 ){
printf(\n ------------- error : 금액 을 잘못 입력하셨습니다. -------------\n);
Sleep(1500);
return;
}
}
if(j==-1)
printf(이체계좌명이 없거나 잘못 입력하셨습니다 다시한번 확인해주세요 \n);
for(i=0;icounter;i++)
{
if(strcmp(name,b_data[i].name)==0)
{
if(strcmp(name1,b_data[i].name)==0)
{
b_data[i].point +=money;
printf(\n 정상적으로 이체 되었습니다 \n);
Sleep(1500);
return;
break;
}
}
}
//return;
}
-
베레기 2023-04-19
수다님 감사합니다
이부분이 계좌이체 를 구현한부분인데 처음 출금하고자하는 계좌 name 과
이체시키고자하는 계좌 name1 입니다
b_data[i].name 이 처음 계좌생성이란 함수에서 계좌를 생성하여 생성된 모든 계좌들이 들어가있는곳인데요
이곳에 생성되지 않은 계좌에서 계좌이체를 하려고할떄 에러가 발생하게하는 소스를 구현하려고한소스입니다
if 문과 할당하는 부분이 좀 복잡한거같아서 계속 시도해보는데도 답이 안나와 이렇게 도움요청드립니 -
티나 2023-04-19
질문이 무엇인지 잘 모르겠네요.
동적할당이 되어있는 부분에 할당이 안되어있다는 건 할당이 됬다는 건가요 안됬다는 건가요?
위에 말씀하신 함수는 단지 name과 b_data[i].name의 대소구분을 한 것으로밖에는 안보입니다.
다른 경우를 보려면 == 1이 아니라 != 0로 보면 되겠죠.
그리고 두번째로 초기에 b_data[i].name을 null로 초기화시켜줘야 계좌가 있고 없고의 판단이 가능할 겁니다.
int a;라고 했을 때 a에 무슨값이 있는지
번호 | 제 목 | 글쓴이 | 날짜 |
---|---|---|---|
2676092 | C언어 책 (2) | 아서 | 2024-11-24 |
2676065 | 웹사이트 또는 메신저 등에서 원하는 텍스트를 검사하는방법?? (1) | 모든 | 2024-11-23 |
2676033 | 배열 기초연습중 발생하는 에러 ㅠㅜ... | Creative | 2024-11-23 |
2676005 | keybd_event 게임 제어 | 영글 | 2024-11-23 |
2675900 | 진짜기본적인질문 | 글길 | 2024-11-22 |
2675845 | 수정좀해주세요ㅠㅠㅠ | 해골 | 2024-11-21 |
2675797 | 병합 정렬 소스 코드 질문입니다. (2) | 도래솔 | 2024-11-21 |
2675771 | 큐의 활용이 정확히 어떻게 되죠?? | 해긴 | 2024-11-21 |
2675745 | 도서관리 프로그램 질문이요 | 도리도리 | 2024-11-20 |
2675717 | 2진수로 변환하는것! (3) | 동생몬 | 2024-11-20 |
2675599 | for문 짝수 출력하는 법 (5) | 널위해 | 2024-11-19 |
2675575 | Linux 게시판이 없어서.. | 첫삥 | 2024-11-19 |
2675545 | 구조체 이용할 때 함수에 자료 넘겨주는 것은 어떻게 해야 하나요? | 아연 | 2024-11-19 |
2675518 | 사각형 가로로 어떻게 반복해서 만드는지좀.. 내용 | 신당 | 2024-11-18 |
2675491 | !느낌표를 입력하는것은 어떻게합니까~~?ㅠㅠ (5) | 사지타리우스 | 2024-11-18 |
2675411 | 파일입출력으로 받아온 파일의 중복문자열을 제거한 뒤 파일출력 | 앨버트 | 2024-11-17 |
2675385 | 링크드리스트 주소록 질문드립니다. (1) | 겨루 | 2024-11-17 |
2675356 | 2진수를 10진수로 바꾸려고 하는데 막히네요.. | 풀잎 | 2024-11-17 |
2675297 | Prity 비트 발생기 | 한란 | 2024-11-16 |
2675249 | C책 좀 추천해 주세요 (2) | 딸기우유 | 2024-11-16 |