◈ 문자열을 다루기
char str[10]; 다음과 같이 선언하여 문자열을 저장할 수 있다.
<코드>
#include <stdio.h>
int main() {
//Please Enter Your Code Here
char myString[10];
myString[0] = 'h';
myString[1] = 'e';
myString[2] = 'l';
myString[3] = 'l';
myString[4] = 'o';
myString[5] = '\0';
// 널을 넣어 반드시 문자의 끝을 명시한다.
printf("%s",myString);
return 0;
}
<코드>
#include <stdio.h>
int main() {
//Please Enter Your Code Here
char myString[] = "hello";
// myString '\o' 을 포함하여 myString 사이즈는 6이다.
printf("%s",myString);
return 0;
}
결과는 5가 출력이 됩니다. (문자열의 길이를 반환)
역할은 ? 길이를 반환한다.
우리가 우리 손으로 어떻게 구현할 수 있을까?
기본적인 아이디어는 '\0' 을 찾는다.
널문자가 아니면 cnt를 증가시키는 방법으로 구현할 수 있을 것이다.
<코드>
#include <stdio.h>
#include<string.h>
int main() {
//Please Enter Your Code Here
char myString[100];
fgets(myString,10,stdin);
printf("%d",strlen(myString));
return 0;
}
입력을 a b c 와 같이 한다면,
다음과 같이 구현을 한다면, 결과가 5로 출력!
띄어쓰기도 인식하고 문자열의 길이를 출력한다!
두 문자가 같으면 0이 반환되고, 두 문자가 다르면 1이 반환된다.
<코드>
#include <stdio.h>
#include<string.h>
int main() {
char a[100], b[100];
int lenA,lenB;
scanf("%s",a);
scanf("%s",b);
lenA = strlen(a);
lenB = strlen(b);
if(lenA == lenB){
bool flag = false;
for(int i=0; i<lenA; i++){
if(a[i]!=b[i]) flag = true;
}
if(flag==true){
printf("Different");
}else{
printf("Exactly Same");
}
}
return 0;
}
다음과 같이 수정할 수 있당!
#include <stdio.h>
#include<string.h>
int main() {
char a[100], b[100];
scanf("%s",a);
scanf("%s",b);
if(strcmp(a,b) == 0) printf("same!\n");
else printf("different");
}
<코드>
#include <stdio.h>
#include<string.h>
int main() {
char a[100];
char b[100];
//Please Enter Your Code Here
scanf("%s",a);
scanf("%s",b);
printf("%s\n",a);
printf("%s\n",b);
strcpy(a,b);
printf("%s\n",a);
printf("%s\n",b);
return 0;
}
'알고리즘' 카테고리의 다른 글
[Algorithm] 과제물 망치기 (0) | 2019.02.03 |
---|---|
[Algorithm] 대소문자변환 (0) | 2019.02.02 |
[Algorithm] fgets (0) | 2019.02.02 |
[Algorithm] pfactorization (0) | 2019.02.02 |
[Algorithm] streetree (0) | 2019.02.02 |