Notice
Recent Posts
Recent Comments
Link
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | |||||
3 | 4 | 5 | 6 | 7 | 8 | 9 |
10 | 11 | 12 | 13 | 14 | 15 | 16 |
17 | 18 | 19 | 20 | 21 | 22 | 23 |
24 | 25 | 26 | 27 | 28 | 29 | 30 |
Tags
- 별찍기
- Tipsware
- tips강좌
- 마이크로소프트
- do it c
- 별찍기 기초
- 핵심 요약
- mfc 실습
- 실습
- 미가공
- MyThread
- Time
- win32
- C
- 정보처리기사
- MFC
- ListBox
- MFC 예제
- mysql
- 정처기 독학
- C++
- SSG
- 도움말
- 김성엽
- MyTread
- linux
- 충무창업큐브
- 포트폴리오
- C언어
- 유료강좌
Archives
- Today
- Total
History
[c언어]쉼표로 문자열을 구분해서 줄바꿈 출력하기 본문
728x90
반응형
아래와 같이 쉼표로 구분된 문자열이 있습니다.
"Hello~! ,My name is minki kim~ ,How are you today~? ,:)"
이 문자열을 쉼표 구분해서 아래와 같은 이미지처럼 나오게 하려면 어떻게 해야 할까?
정답은 간단하다. ','를 만나는 부분을 개행 문자(\n)로 바꾸면 해결된다.
#include<stdio.h>
#pragma warning(disable:4996)
int main()
{
char arr[100]="Hello~! ,My name is minki kim~ ,How are you today~? ,:)";
for (int i = 0; arr[i] !=NULL; i++){
if (arr[i]==','){
arr[i] ='\n';
}
printf("%c", arr[i]);
}
return 0;
}
for문의 종결 조건에 사용한 arr[i]!=NULL은 0과 비교하겠다는 뜻이다. 단순히 arr[i]만 적어도 된다. 어차피 문자열의 끝에는 NULL값이 들어있을 것이다.
두 번째 방법으로 위의 예제를 포인터 형식으로 바꿔서 만들어보겠다.
#include<stdio.h>
#pragma warning(disable:4996)
int main()
{
char arr[] = "Hello~! ,My name is minki kim~ ,How are you today~? ,:)";
char* p_pos= arr;
while (*p_pos){
if (*p_pos == ',') {
*p_pos = '\n';
}
p_pos++;
}
printf("%s", arr);
return 0;
}
위와 같은 코드가 나온다. 문자열을 받은 배열의 시작 주소를 char 포인터에 대입한 후 반복문을 통해 ,를 만나면 개행을 대입해준 후 반복문이 끝나면 출력해준다.
728x90
반응형
'C,C++ > 개념 실습 프로그래밍' 카테고리의 다른 글
쉼표로 문자열을 구분해서 줄바꿈 출력하기 - 함수 직접 구현 (2) | 2022.09.21 |
---|---|
strtok_s 함수를 이용해서 쉼표로 문자열을 구분해서 줄바꿈 출력하기 (0) | 2022.09.21 |
fread (0) | 2022.07.14 |
오버로딩2 (0) | 2021.04.15 |
오버로딩 (0) | 2021.04.15 |
Comments