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
- do it c
- MFC
- 정처기 독학
- mysql
- C언어
- 도움말
- SSG
- tips강좌
- Time
- win32
- C++
- 별찍기
- 충무창업큐브
- Tipsware
- 마이크로소프트
- MFC 예제
- 김성엽
- 정보처리기사
- mfc 실습
- 미가공
- 별찍기 기초
- 유료강좌
- ListBox
- C
- 핵심 요약
- MyTread
- 실습
- 포트폴리오
- MyThread
- linux
Archives
- Today
- Total
History
[C언어] 문자열 앞에 다른 패턴을 추가해야할 때 본문
728x90
반응형
이미 저장된 문자열 앞에 사용자가 원하는 문구를 추가해야 할 때
더보기
ex)
hello
world
!!!
-----변환-----
1. hello
2. world
3. !!!
코드는 아래와 같다.
#include<stdio.h>
int main()
{
char str_table[3][16] = { "hello","world" ,"!!!" };
for (int i = 0; i < 3; i++){
printf("%s\n", str_table[i]);
}
char temp[3][20];
for (int i = 0; i < 3; i++) {
sprintf_s(temp[i], 20, "%d. %s", i+1, str_table[i]); //문자열 합치기
}
for (int i = 0; i < 3; i++) {
printf("%s\n", temp[i]);
}
return 0;
}
sprintf_s를 사용하면 기존에 있던 문자열을 합칠 수 있다.
그러나 메모리를 안 만들고 앞에 원하는 문자를 추가할 수 있는 방법을 원하는 사람들이 있을 수 도 있기에 아래와 같은 방법도 같이 소개하겠다.
#include<stdio.h>
#include<string.h>
int main()
{
char str_table[3][16] = { "hello","world" ,"!!!" };
for (int i = 0; i < 3; i++){
printf("%s\n", str_table[i]);
}
printf("-----변환-----\n");
for (int i = 0; i < 3; i++) {
memmove(str_table[i] + 3, str_table[i], strlen(str_table[i]));
str_table[i][0]='1'+i;
str_table[i][1] = '.';
str_table[i][2] = ' ';
}
for (int i = 0; i < 3; i++) {
printf("%s\n", str_table[i]);
}
return 0;
}
memmove함수는 따로 메모리를 할당하지 않고 기존에 있던 메모리를 사용자가 원하는 만큼 전체적으로 뒤로 밀어주는 함수이다.
memmove(str_table[i] + 3, str_table[i], strlen(str_table[i]));
위와 같은 코드에서는 기존 str_table의 문자열 내용을 문자열 길이만큼 뒤로 3바이트 밀어주는 역할을 하고 있다.
결과는 아래와 같다.
더보기
hello
world
!!!
-----변환-----
1. hello
2. world
3. !!!
728x90
반응형
'C,C++ > 개념 실습 프로그래밍' 카테고리의 다른 글
[C언어][질문] strcat함수를 만들었는데 이상합니다. (0) | 2022.10.29 |
---|---|
[C언어] strcat함수 직접 구현 (0) | 2022.10.26 |
[C++] 표준 입력 스트림에서 입력 오류 처리하는 방법 (0) | 2022.10.26 |
[c언어]별 찍기3 (0) | 2022.10.22 |
실수로 변수 이름을 @@@1,2,3으로 개발했을 때 (0) | 2022.10.22 |
Comments