1. 변수나 포인터변수를 선언
2. scanf로 문자열을 입력받음
3. 입력받은문자열이 "abc" 인지 확인(if문으로)
4. 맞다면 1, 틀리다면 0 을 뱉고 끝냄
이런식으로 만들수있는 방법이
어떤거 어떤거 뭐뭐있음?
복잡한방법말고 그냥 단순하게
char xxxxxxx; //변수선언//
scanf(" ", ); //입력받음//
if( == "abc") // 비교//
return1;
else
return 0;
이런형태로만 만들때
1. 변수나 포인터변수를 선언
2. scanf로 문자열을 입력받음
3. 입력받은문자열이 "abc" 인지 확인(if문으로)
4. 맞다면 1, 틀리다면 0 을 뱉고 끝냄
이런식으로 만들수있는 방법이
어떤거 어떤거 뭐뭐있음?
복잡한방법말고 그냥 단순하게
char xxxxxxx; //변수선언//
scanf(" ", ); //입력받음//
if( == "abc") // 비교//
return1;
else
return 0;
이런형태로만 만들때
먼말이지 ㄷ
단순히말하면 문자열을 scanf로 입력받기 > 입력받은문자열이 "abc"인가 확인 이과정을 만들기
방법이 많을꺼같은데 정리가안되네..
많나요? 딱 하나밖에 생각안나는뎅...
걍 비교하는 거 말고 뭐 있는지?
ㄴ 어떤식으루요?
그냥 한글자씩 비교해야죠 뭐 str[0] 부터 '\\0'나올때까지~
왜.. 변수를 어떻게 만드느냐(char형이라도 배열을이용할수도있고 포인터를섞을수도있고)에 따라서 그리고 그런걸로 scanf문 비교문할때 쓰는게 다 다를태니
난 c++ 유저라 string s;getline(cin,s);if(s=="abc") 이렇게 이거되나 안되면 s.find("abc")
문자열자체를 바로 if문에서 조건문으로비교가안되고 for문돌려서 문자열의 문자 하나하나를 비교해야하는것밖에없나요?
char* 로 받으면 다시받을때 문제되기도하고 쓰레기값들 트렁케이션하기도귀찮 그냥 string 짱
Strcmp (var1, var2)
s.find 쓰세요
문자열 비교함수인거같은데..string...아직안배우고 c밖에 못써봐서 잘모르겠네요 ㅜ
근데 그냥 결국 핵심은 포인터 연산을 하면서 한 글자씩 비교하기 라는 생각이 든다 이겁니다. arr[i]는 결국 *(arr+i)니까요
c 도 string.h 씁니다
지금 내가말하는 이문제가 내가모르는함수로 쉽게 구현가능하다. 근데 그걸떠나서 지금내수준에서도 이걸만들수있지않음? 그게궁금한것. 다른함수말고 기본개념으로도 충분히가능할텐데 for문에 문자하나하나 비교하는것말고
getline 이것도 c 에서 파생된함수일껄요
하나하나비교말고 방법이 모가잇징
솔직히말해서 부끄러워서 돌려서질문했지만 요지는 for문돌려서 a비교하고 b비교하고 c비교하고 이렇게하나하나하는방법, 또는다른함수를 사용하는 방법 외에는 입력받은문자열을 통체로 == "abc" 이런식으로 비교할수있는 방법이없다는?
없..나요?
카프라빈 , kmp 보이어무어 등등 문자열알고리즘을 구현한 함수들이 find 류임 cmp는 맨첫배열부터 검사시작해서 다른거만나는순간 false 리턴
string 타입은 될껄??
그게 string으로 가능한데.. 어처피 그 함수도 컴퓨터가 문자를 하나하나 비교하는거아닌가
나도..몰라서물어본거야.. 방법이 많을것같은데.. 하나하나비교하는거말고 문자열체로 비교하는방법이..있을꺼같은데 이렇게저렇게해봐도 안되..
아...결국그러니까 이런경우처럼 문자열의비교는 문자열함수를사용하는데, 그함수들의구조들도 결국엔 뜯어보면 한자한자 비교한다는거고, 따른방법이 없다는거지..?
근데 char라는 변수에 abc를 담으면 'a' 'b' 'c' '₩0' 아닌가
그렇지, 그거자체를통체로 "abc"와 같은가요? 라고 물어보려면 어떻게 해야하는거지. 한자한자 뜯어서 하는거말고 통체로갈아넣고 야!컴터! 비교해! 할수있는방법
정녕 for문돌려서 한자한자비교하기, 문자열함수를 이용하기 외에는 방법이없다는건가?
넵 string == 오퍼레이터 안뜯어봐서 모르겠지만 아마도 저런식으로 비교하지않을까? 아니면 문자열 해쉬만들어서 1차검사하고 안되면 부룻포쓰할지도?? ㅋㅋㅋ
C++을 만나라 잘은 모르지만 웬지 방법이 있을 거 같다
연산자 오버로딩도 지원한다고 풍문으로 들~엇소~ 그러니까 될 거 같다
포인터고 변수포인터고 포인터변수고 나발포인터고 이용하고 지랄발광을떨어도 if( 머시기 == "abc") 라는 구문을 만들수가 없는거임?
C++이면 걍 스트링으로 받아서 =="abd"하면 되자나
다른쉬운방법이 있잖아~ 라는건 알면좋긴하겠지만그건언젠가 알게될거고,, 혹여나 내가방법이있는데 모르고 개념을 잘못짚고 가나싶어서... 분명 방법이있을꺼같은데~ 이리 안나오자나
포인터가아니라면 abc도 char에 넣어서 비교하면 될거같은데
한가지 방법이 있긴함.... 전역 오퍼레이터 == 을 선언하던가 네임스페이스 내에 == 오퍼레이터 만들고 myspace::== 요런식으로 쓰던가..
char* 이게 기본타입변수라서 저런식으로 함수안쓰고 오퍼레이터 선언한다는거 자체가 엄청난 오버해드임... 저건포기하세요
"abc"라는 문자열을 다른 char형 변수에 넣어서 비교해라?
코세..코세형은 어디있는가..
ㅇㅇ 그럼댈거가튼데
ㄱㄷ 해보고옴
스트링타입으로 하면될꺼같다는건 뭘말한거임? 그것도 같이해줭~
아근데 네이스페이스 개념도 c++에서나온거임 스트링써하는거면 그냥 == 됨 그냥하면되요
ㄴ 어떤식으루요?
string s;getline(cin,s);if(s=="abc") 이렇게 이거되나 안되면 s.find("abc")
에고... 제 배움의수준을 벗어난범위네요..
char buf[100]; cin>>buf 아니면 scanf("%s",buf); string s=buf; if(s==buf) <- 요건잘모르겠음 암튼요런식임
답변 올려드렸습니다.