2017.06.18 22:18
문자열 처리는 사실 쉽지 않습니다. 왜냐하면 메모리 주소와 관련되어있기 때문입니다.
이에 대한 자세한 내용은 다음 기회에 이야기하는 것으로 하구요.
현재 코드 상의 문제점은 마지막 printf 문에 있네요. p[i]는 p 문자열의 i번째 '문자'를 의미합니다. 따라서 입출력 제어문자는 %c 이어야 합니다.
2017.06.19 23:09
안녕하세요 저번에 답변해주신것이 도움되었습니다. 제가 테스트할때는 답이 잘 나오는 데 채점할때는 이상합니다.
죄송하지만 다시한번 도움부탁드립니다.
#include <stdio.h>
#include<string.h>
int main()
{
int a = 0, i = 0, len=0;
char p[1100];
scanf("%dn",&a);
//scanf("%s",p);
gets(p);
len = strlen(p);
//printf("%d , (%s)", len, p);
//return 0;
for (i = 0; i < len; i++)
{
if (p[i] != ' '){ printf("%c", p[i]); }
else if (p[i] == ' '){ printf("n"); }
}
}
추천:1 댓글
채점 데이터를 면밀히 확인해 보니, 채점 데이터 자체에 오류가 있었습니다.
수정했으니 다시 채점해 보시기 바랍니다.
좋은 오류 찾아주셔서 감사드립니다.
2017.06.19 23:30
00a46 문제를 푼후에 local PC에서 실행을 하면 맞게 나옵니다. 근데 코드 제출을 하면 Line 8에서 제출이 없다고 나오고 있습니다. 체점기에 오류가 있는게 없을지요?
--------------------------------------------
채점 데이터를 면밀히 확인해 보니, 채점 데이터 자체에 오류가 있었습니다.
수정했으니 다시 채점해 보시기 바랍니다.
좋은 오류 찾아주셔서 감사드립니다.
2017.07.02 11:38
안녕하세요. 한가지 더 문의 합니다. 이번에는 제가 gets()를 이용하여 제가 다시코드를 만들어봤는데
아래의코드대로 gets() 함수를 쓰면안되는지 의문이 있어 질문 드립니다.
--------------------------------------------------------
//http://www.jynote.net/604
#include<stdio.h>
#include<string.h>
int main()
{
int i=0,len=0;
char a[100];
gets(a);
for(i=0; a[i] != ' '; i++)
{
if(a[i]!=' ')
{
a[i]='n';
}
}
printf("%s",a);
return 0;
}
-------------------------------------------------------
gets() 함수를 써도 됩니다. 그러나, 알고리즘은 잘못 되었습니다.
a[i]='n'; 이 부분을 확인해 보세요.. 이게 맞는지...
그리고, len 변수는 어디에 사용하는 건가요? 만들기만 하고 사용하지 않고 있네요..
2017.08.03 22:45
배열의 크기를 키워 보세요~ 입력값에 비해서 메모리 공간이 너무 작습니다.
2017.11.11 01:43
아래와 같이 입력하고 제출을 눌렀더니
20번째 케이스(입력 데이터)에서 '접근 위반' 이라고 나옵니다.
'접근 위반' 이 뭔가요..?
-----------------------------------------------------------------------
#include <cstdio>
char arr[10000];
int main()
{
int n, i=0;
scanf("%dn", &n);
gets(arr);
while(arr[i] != 0)
{
if(arr[i]==32)
{
printf("n");
}
else
{
printf("%c", arr[i]);
}
i++;
}
return 0;
}
정적 메모리 영역을 침범했다는 의미입니다. 즉, 10번째 데이터가 많은데 배열은 작기 때문에 선언하지 않은 메모리 영역에 값이 저장되는 시도가 이루어졌기 때문이지요...
char arr[10000]; 을 char arr[100000] 으로 변경해 보세요~
2019.10.28 21:06
a= int(input())
b= input()
for k in range(0,len(b)):
if b[k]==" ":
print("\n")
else:
print(b[k], end="")
이를 확인하면 맞게 나오는데, 채점은 다르다고 되있네요. 채점기에 오류가 있나요?
확인해 보겠습니다~
2가지 문제가 있습니다.
1. 우선 본 사이트의 에디터에서 임시 실행의 출력 결과를 뿌려줄 때 개행 처리에 버그가 있었습니다.
현재는 올바르게 수정되었습니다. 감사합니다.
2. 결과를 보시면, 개행이 2개씩 되어 있는 걸 확인하실 수 있을 겁니다!
파이썬의 print("") 명령문은 자동으로 개행을 합니다. 따라서 print("\n") 이렇게 하면, 자동 개행이 2번이 되는 것입니다.
다음의 코드처럼 해보세요~
a = int(input()) b = input() for k in range(0,len(b)): if b[k]==" ": print("") else: print(b[k], end="")
번호 | 제목 | 글쓴이 | 최근 수정일 | 날짜 | 조회 수 | 추천 수 |
---|---|---|---|---|---|---|
578 | 00a62 1 부터 100 까지 출력하기 [5] | 관리자 | 2020.09.13 | 2017.05.20 | 3318 | 0 |
577 | 00a75 hello, world! 출력하기 3 [8] | 관리자 | 2020.09.04 | 2017.05.20 | 4653 | 0 |
576 | 12nm3 원숭이 [1] | 관리자 | 2020.08.05 | 2017.05.20 | 2360 | 0 |
575 | 00a38 큰 정수값 그대로 출력하기 [5] | 관리자 | 2020.08.04 | 2017.05.20 | 3676 | 0 |
574 | 04ne2 줄자 접기 [1] | 관리자 | 2020.07.15 | 2017.05.20 | 2155 | 0 |
573 | 00a70 별 그리기 1 [8] | 관리자 | 2020.06.05 | 2017.05.20 | 3372 | 0 |
572 | 01a18 주어진 갯수만큼 # @ 번갈아서 출력하기 2 | 관리자 | 2020.05.15 | 2019.11.23 | 635 | 0 |
571 | 00b02 기차 교차로 [8] | 관리자 | 2020.01.15 | 2017.05.20 | 2725 | 0 |
570 | 00a99 Hello KOI 반복 출력하기 (재귀) [2] | 관리자 | 2020.01.14 | 2018.12.02 | 885 | 0 |
569 | 00a24 나눗셈 1 [6] | 관리자 | 2019.12.23 | 2017.05.20 | 3639 | 0 |
568 | 00a25 나눗셈 2 [3] | 관리자 | 2019.12.23 | 2017.05.20 | 3637 | 0 |
567 | 00a09 초 단위 시간의 구분 [8] | 관리자 | 2019.12.02 | 2017.05.20 | 4281 | 0 |
566 | 00a47 팩토리얼 구하기 [2] | 관리자 | 2019.11.27 | 2017.05.20 | 3460 | 0 |
565 | 01a14 주어진 정수 n의 약수 모두를 오름차순으로 출력하기 | 관리자 | 2019.11.23 | 2019.11.23 | 492 | 0 |
564 | 01a11 주어진 갯수만큼 # 출력하기 | 관리자 | 2019.11.23 | 2019.11.23 | 708 | 0 |
563 | 01a10 주어진 갯수만큼 # @ 번갈아서 출력하기 1 | 관리자 | 2019.11.19 | 2019.11.19 | 509 | 0 |
562 | 01a09 주어진 갯수만큼 #을 출력하고 마무리하기 | 관리자 | 2019.11.18 | 2019.11.18 | 502 | 0 |
561 | 01a06 2개 숫자 사이의 정수 나열하기 | 관리자 | 2019.11.18 | 2019.11.18 | 559 | 0 |
560 | 00a81 탈출 [4] | admin | 2019.11.07 | 2017.10.09 | 3606 | 0 |
559 | 00a54 사칙연산 3 [3] | 관리자 | 2019.11.06 | 2017.05.20 | 3127 | 0 |
558 | 00c37 게으른 여우 [2] | 관리자 | 2019.10.30 | 2017.05.20 | 2603 | 0 |
» | 00a46 N개의 문자열 출력하기 1 [15] | 관리자 | 2019.10.28 | 2017.05.20 | 3752 | 0 |
556 | 00a64 제주공항 도착시간 계산하기 1 [5] | 관리자 | 2019.10.28 | 2017.05.20 | 3248 | 0 |
555 | 00a03 홀수와 짝수 판별하기 [4] | 관리자 | 2019.10.25 | 2017.05.20 | 4141 | 0 |
554 | 00b04 요셉문제 (연결리스트 사용하기) [2] | 관리자 | 2019.10.25 | 2017.05.20 | 2569 | 0 |
553 | 00b17 최소동전교환 [5] | 관리자 | 2019.10.23 | 2017.05.20 | 2506 | 0 |
552 | 99z99 온라인 코딩 | 관리자 | 2019.09.07 | 2019.09.07 | 326 | 0 |
551 | 99z99 비공개 문제 | 관리자 | 2019.09.07 | 2019.09.07 | 9 | 0 |
550 | 00c02 동아리 회식 [1] | 관리자 | 2019.08.19 | 2017.05.20 | 2272 | 0 |
549 | 00a67 시험성적 [5] | 관리자 | 2019.08.06 | 2017.05.20 | 3096 | 0 |
548 | 00b48 4학년 제임스의 혼합계산 해결하기 [1] | 관리자 | 2019.07.28 | 2017.05.20 | 2671 | 0 |
547 | 05re1 대표값 [4] | 관리자 | 2019.07.26 | 2017.05.20 | 2312 | 0 |
546 | 00a32 암호의 해독 [9] | 관리자 | 2019.07.26 | 2017.05.20 | 3186 | 0 |
545 | 00a93 셜록홈즈의 전화자동응답 시스템 | admin | 2019.07.14 | 2018.09.27 | 681 | 0 |
544 | 00b39 숫자삼각형 [2] | 관리자 | 2019.07.14 | 2017.05.20 | 2749 | 0 |
543 | 00b50 구간합 구하기 [4] | 관리자 | 2019.07.14 | 2017.06.12 | 2682 | 0 |
542 | 00a21 사칙연산 1 | 관리자 | 2019.07.14 | 2017.05.20 | 3330 | 0 |
541 | 00b53 변형된 바이러스 [3] | 관리자 | 2019.07.10 | 2017.06.23 | 2751 | 0 |
540 | 00b16 알파벳 순열 생성하기 [4] | 관리자 | 2019.07.08 | 2017.05.20 | 2590 | 0 |
539 | 00b03 요셉문제 (원형큐 사용하기) [4] | 관리자 | 2019.07.06 | 2017.05.20 | 2583 | 0 |
538 | 00b07 바이러스 감염 [2] | 관리자 | 2019.07.04 | 2017.05.20 | 2333 | 0 |
537 | 00b11 정렬하기 2 [2] | 관리자 | 2019.06.29 | 2017.05.20 | 2668 | 0 |
536 | 11re3 공주님의 정원 [1] | 관리자 | 2019.06.29 | 2017.05.20 | 2320 | 0 |
535 | 00a15 수치 회문 판별 [1] | 관리자 | 2019.06.29 | 2017.05.20 | 2633 | 0 |
534 | 00c58 조명 [2] | 관리자 | 2019.06.29 | 2019.04.20 | 268 | 0 |
533 | 08re2 떡 먹는 호랑이 [4] | 관리자 | 2019.06.28 | 2017.05.20 | 2276 | 0 |
532 | 18nm1 두 박스 [2] | 관리자 | 2019.06.11 | 2019.04.14 | 205 | 0 |
531 | 15re2 세로읽기 [13] | 관리자 | 2019.07.05 | 2017.05.20 | 2531 | 0 |
530 | 00b01 최대공통부분문자열 [3] | 관리자 | 2019.06.07 | 2017.05.20 | 2818 | 0 |
529 | 00a55 입력되는 숫자 1의 개수 | 관리자 | 2019.05.29 | 2017.05.20 | 3083 | 0 |
안녕하세요 제가 이 문제를 풀다 일단 입력한 문자열을 그대로 출력하는코드를 짜고 실행 해봤습니다. 그런데 잘못된 답이 아닌 실행오류라는것을 이유를 몰라 고민중입나다. 아래의코드를 보시고 도움부탁드립니다.
|
|
|
|
|
|
|
|
#include <stdio.h> <---------------------------------------------------------------|
#include<string.h>
int main()
{
int a = 0, i = 0, len=0;
char p[500];
scanf("%d",&a);
scanf("%s",p);
len = strlen(p);
for (i = 0; i < len; i++)
{
printf("%s",p[i]);
}
}