본문 바로가기

반응형
SMALL

문자열

10808 - 알파벳 갯수 10808번: 알파벳 개수 단어에 포함되어 있는 a의 개수, b의 개수, …, z의 개수를 공백으로 구분해서 출력한다. www.acmicpc.net 문자열 다루기 재활 훈련,,, a는 97이다 #include char str[100 + 10]; int arr[30]; void init() { scanf("%s", str); } void count() { int n = 0; while (str[n] != '\0') { arr[str[n] - 97] += 1; n++; } } void print() { for (int i = 0; i < 26; i++) { printf("%d ", arr[i]); } } int main(void) { // freopen("10808.txt", "r", stdin); init.. 더보기
C에서 문자열 반환하는 함수 만들기 프로그램을 짜다보면 문자열을 반환하는 함수를 만들어야 할 때가 있습니다. 사실 파이썬에선 문자열 반환이 간단한 편인데, C에서는 어떨까요? 어떤 형식으로 반환을 해야 문자열 반환이 가능할까요? const char* string() { return "Hello World!"; } int main(void) { printf("%s", string()); } 위와 같이 const char* 형식으로 반환을 하면 됩니다. 왜 그럴까요? 사실 c에서 문자열이라는 것은 char 데이터로 이루어진 배열을 뜻하게 됩니다. 그렇다면 그 문자열을 가리키는 주소값은 어떤 값을 가리키고 있을까요? c에서 배열을 사용하는 것과 똑같은데, 바로 문자열 제일 처음을 가리키게 됩니다. 그렇게 되므로써 %s를 만나고 '\0' 값을 만.. 더보기
"const char *" 형식의 값을 사용하여 "char *" 형식의 엔터티를 초기화할 수 없습니다. - 에러 수정 C 언어 공부 중 만난 에러입니다. 기본적으로 C 언어에선 포인터 개념을 사용합니다. 문자열에서도 이와 같은 개념을 똑같이 적용할 수 있는데, 분명 책에선 잘 된다고 되어있는데, 작동을 했을 때 에러가 발생해서 그 해결법을 적어보려 합니다. 문제의 코드입니다. #include int main(void) { char* str = "안녕"; printf("%s", str); } 간단하죠? 되게 간단한데 str 포인터가 "안녕"이라는 상수를 가리킬 수가 없습니다. str과 "안녕"의 형식이 달라서 발생하는 오류입니다. 해결방법은 2가지가 있습니다. 1. str을 const로 바꾼다. #include int main(void) { const char* str = "안녕"; printf("%s", str); } .. 더보기

반응형
LIST