분류 | 게시판 |
베스트 |
|
유머 |
|
이야기 |
|
이슈 |
|
생활 |
|
취미 |
|
학술 |
|
방송연예 |
|
방송프로그램 |
|
디지털 |
|
스포츠 |
|
야구팀 |
|
게임1 |
|
게임2 |
|
기타 |
|
운영 |
|
임시게시판 |
|
제가 지금 포인터에 대해서 공부하고있는데요..아무리 봐도 이해안가는게 있어서.. 알려주시면 감사하겠습니다 ㅠ
아래 코드에서 strrevcase는 주어진 문자열에서 소문자는 대문자로, 대문자는 소문자로 바꾸는건데요.. 아래처럼 하면 잘되는데
#include <stdio.h>
#include <conio.h>
#include <ctype.h>
#include <string.h>
void strrevcase (char (*ch)[32]);
int main()
{
char ch1[32]="cASe";
char ch2[32]="reVERSe";
printf("ch1=%s, ch2=%s\n",ch1,ch2);
strrevcase(&ch1);
strrevcase(&ch2);
printf("ch1=%s, ch2=%s",ch1,ch2);
_getch();
}
void strrevcase (char (*ch)[32])
{
int len=strlen(*ch);
int i;
for (i=0;i<len;i++) {
if ((*ch)[i] == tolower((*ch)[i])) {
char u=toupper((*ch)[i]);
(*ch)[i]=u;
} else {
char l=tolower((*ch)[i]);
(*ch)[i]=l;
}
}
}
아래처럼 하면 메모리오류??인가 액세스 실패..같은게 계속 뜹니다
#include <stdio.h>
#include <conio.h>
#include <ctype.h>
#include <string.h>
void strrevcase (char** ch);
int main()
{
char* ch1="cASe";
char* ch2="reVERSe";
printf("ch1=%s, ch2=%s\n",ch1,ch2);
strrevcase(&ch1);
strrevcase(&ch2);
printf("ch1=%s, ch2=%s",ch1,ch2);
_getch();
}
void strrevcase (char** ch)
{
int len=strlen(*ch);
int i;
for (i=0;i<len;i++) {
if ((*ch)[i] == tolower((*ch)[i])) {
char u=toupper((*ch)[i]);
(*ch)[i]=u;
} else {
char l=tolower((*ch)[i]);
(*ch)[i]=l;
}
}
}
배열 포인터를 이중포인터로 바꾼건데요.. 왜안될까요..
죄송합니다. 댓글 작성은 회원만 가능합니다.
번호 | 제 목 | 이름 | 날짜 | 조회 | 추천 | |||||
---|---|---|---|---|---|---|---|---|---|---|
6 | 제 폰에서 여자비명소리? 귀신소리 같은게 계속 나요 [3] | 전자기파 | 15/08/30 04:12 | 62 | 0 | |||||
5 | 조립중 질문임다 [2] | 전자기파 | 14/10/24 18:32 | 62 | 1 | |||||
4 | 내일 지르려고 하는데.. [2] | 전자기파 | 14/10/22 03:12 | 77 | 0 | |||||
3 | 견적좀 여쭐게요 [3] | 전자기파 | 14/09/30 02:00 | 63 | 1 | |||||
2 | 리눅스질문] basrc 오류에 대해서 질문입니다 [1] | 전자기파 | 14/03/18 19:31 | 16 | 0 | |||||
▶ | c언어 포인터와 배열 관련해서 질문입니다.. [4] | 전자기파 | 12/12/12 23:58 | 20 | 0 | |||||
|
||||||||||
[1] | ||||||||||