입력받은 문자열을 한 글자씩 다른 배열에 넣으려다가 찾은건데요

5513019의 이미지

#include <stdio.h> 
int main() { 
 
    char str[50]; 
    int val[10]; 
    scanf("%s", &str); //문자열 입력받기
    for (int i = 0; str[i] != '\0'; i++){ //문자열이 끝날때까지 계속
        val[i] = str[i] - '0'; 
        printf("%d ", val[i]); 
    } 
    return 0; 
}

for문안에 첫번째 줄에서 -'0'을 하잖아요? 그게 무슨 의미인지 알수 있을까요??

god of develop의 이미지

의미 1도 없는 코드입니다.
그냥 '0' 빼라는게 입력한 문자 ASCII 값이 잇을거니 빼나 마나 입니다.
누가 짯는지 진짜 허접하네요

익명 사용자의 이미지

틀린 답변을 당당하게 하면서 남의 코드 험담까지 곁들이는 심리는 이해할 수가 없군요.

yeminboss의 이미지

그리고 그정도는 자기가 테스트 해볼수 있는거 아닙니까?
넣어서 해보고 빼보고 해보고 하면 결과가 나올건데
그렇게 하나하나 확인하기 귀찮아서 개발로 밥벌어 먹고 살수 있겠습니까?

익명 사용자의 이미지

C 언어 처음 접하는 초보자이면 정말 저런 질문할 수도 있는데, 말씀이 틀린 얘기는 아닙니다만, 너무 심한 거 같습니다.
겁 나서 어디 글이나 쓰겠습니까. 여기가 직장/대학 선후배 질문/답변해주는 곳도 아니고요. 전공자가 아닌 취미로 C를 공부하다가 질문할 수도 있는 건데...

jick의 이미지

뭐 익명이라서 모르겠지만 첫번째 답글을 쓴 사람과 같은 사람이라면 좀 안타깝네요.
진짜로 -'0' 빼서 테스트 한번 해보면 그 코드가 무슨 역할을 하는지 바로 알 수 있는데 "의미없는 코드입니다"라고 당당하게 적은 거라면... -.-

익명 사용자의 이미지

안녕하세요.

제시하신 코드는 입력한 문자가 실제 숫자로 어떻게 되는 지 확인하는 코드입니다.
(만약 str[0]에 '1'이 들어가 있으면 ascii '1'은 0x31 이고, '0'은 0x30이니깐 val[0]에 정수형 1이 대입되는 거지요)

작성하신 코드 방식처럼 쓰여지는 곳이 다른 코드들에서도 가끔씩 보일 것입니다.
(지금 당장 실례는 생각이 잘 안나네요. ^^)

이상입니다.

bushi의 이미지

    char str[50]; 
...
    scanf("%s", &str);

일단, 허접한 코드라는 말은 틀리진 않습니다.
세벌의 이미지

C 프로그래밍 언어의 바이블이라 할 수 있는 책이 도움이 될 겁니다.
구글에서 찾아보면 많이 나옵니다. 예를 들어
https://github.com/kusti8/LearnCKR/blob/master/The%20C%20Programming%20Language%20-%202nd%20Edition%20-%20Ritchie%20Kernighan.pdf

의미 1도 없는 코드라는 누군가의 말이 틀린지 아닌지 찾을 수 있을 겁니다.

KLDP에 까칠한 사람들이 많이 오네요. 잘 이겨내시길.

kind boy의 이미지

개발로 밥벌어먹은지 어언 25년쯤 되가네요.
그런데.. 여태 본 코드중에 가장 난해합니다.
코드란 즉 개발자의 의도가 보여야 하는데
해당 코드는 도무지 알쑤가 업네요.
음... 잡스는 되야 이해할수 있을까요?

김정균의 이미지

흠.. 질문자가 올린 코드가 질문자가 작성한 코드가 아닌 것 같은데요. 그리고 질문자가 원하는 것은 그 코드 중에서 이해가 가지 않는 부분을 설명해 달라고 하는 것인데, 님의 답변은 전혀 상관 없는 것만 지적하고 있는 것 같습니다.

질문이 마음에 들지 않으면 답변을 안 해도 괜찮습니다. 말 그대로 답변자가 봉은 아니니까요. 하지만 답변을 하는 것도 아니고, 해결을 위한 아주 까질한 조언(어떤 사람의 경우에는 비난이라고 볼 수도 있는)도 아닌 말 그대로 비아냥은 님의 스트레스를 여러 사람에게 푸는 것 밖에는 되지 않습니다. 이런 멘트를 적는 이유는 따로 적지 않아도 이해가 되리라 생각 합니다.

익명 사용자의 이미지

그냥 c언어 책에 나오는 예제 코드 같은거에요.
의도는 공부가 의도죠.

5513019의 이미지

앞으로 공부 많이 하겠습니다 ^^

익명 사용자의 이미지

학생 때나, 잘 모를 때는 다 그렇죠.
심각히 받아들이지 말아요.
다들 그런 과정을 거쳐가는거고 올챙이적 생각 못하는거죠. 여기 일부 사람들이 질문자님이랑 직장 선후배, 학교 선후배 관계에 있는 것도 아닌데 심하게 얘기한 것 같네요. 계속 공부하면서 시간 지나면 c언어로 자신이 생각한 것을 글 쓰듯이 술술 쓸 때가 올 겁니다.
그 다음부터는 언어에 구애받지 않고 아이디어, 알고리즘으로 승부하는 겁니다.

익명 사용자의 이미지

개발 25년차 개발자로써 조언하나 드리지요.
될썽부른 나무 떡잎부터 알아본다는 옛선조들의 말이 있습니다.
저 또한 올챙이적 시절은 없었던것 같네요.
누구나 올챙이적이 있다는듯한 뉘앙스는 일반화의 오류입니다.

익명 사용자의 이미지

개발자는 코드로 말합니다.
github, gitlab 에 실제 프로덕션 코드를 보여주세요

익명 사용자의 이미지

태어날 때부터 c언어를 알고 태어나는 사람이 어디있습니까.
처음에는 다들 c언어를 모르던 올챙이적 시절이 있고 책보고 공부하고 모르는게 있으면 선배님한테, 아니면 조교, 교수님한테 물어보고 공부하죠. 그러나까.. 개발 25년차라는 분은 실제 개발자가 아닐 가능성이 높습니다.
어디서 주워들은 걸로 개발자 행세를 하고 싶고 대우를 받고 싶은데 그럴질 못하고 있는 것 같고, 그냥 약자(초보자, 학생) 상대로 갑질하고 스트레스 풀고 그러는거죠. 사회에서 오죽 못났으면 그럴까요.
개발 25년씩 되시면 회사를 운영하시거나, 귀하께서 저작권/판권 등 모든 권한을 보유하고 있는 오픈소스/프리웨어/쉐어웨어/상업소프트웨어/책 이런 것 쯤은 있을텐데 답변이 없으신거보니 그런 것도 없으신거 같네요. 실제 개발자가 맞는지 의문스럽습니다.
실제 개발자이시다면, 님께서 회사 대표나 주주가 아니라면 남의 회사에 다니시는거고 남의 회사에서 코드를 작성한 순간 그 코드는 님의 것이 아니라 남의 것이 됩니다. 남이 주는 돈으로 밥먹고 살고 계신거고요.
개발 25년씩 되고 그러셨으면 겸손할 줄도 알고 모르는 사람이 물어보면 답변도 해주고 그러실 줄 알아야 되는데, 그러질 못하시는거 보니 개발자가 아니겠죠. 그냥 아는 거라고는 어디서 주워들은거 밖에 없는 분이 잘난체하고 갑질하고 싶어서 저러시는거 같네요.
학생이나 초보자가 모르는거는 당연한데, 그걸 선생님이나 교수님한테 물어보면, 선생님이나 교수님이 혼을 내시던가요?

에헴... 내가 개발 25년차인데... 이런 식으로 상대방을 깔아뭉개고 면박주는 글 올라오면 제가 그분들께 이 글을 드리겠습니다. 님은 재벌 2세나, 대통령, 국회의원, 판사, 검사 이런 사람 아니에요. 그냥 틀딱/꼰대에요. 현실을 직시하시고 정신 차리세요.
님께서 회사 대표, 주주도 아니고 남의 회사에 다니면서 남의 회사에서 코드를 작성한 순간 그 코드는 님의 것이 아니라 남의 것이 됩니다. 남이 주는 돈으로 밥먹고 살고 계신거고요. 틀딱/꼰대님, 현실을 직시하시고 정신 차리시라고요. 부끄러운줄 아시라고요.

jick의 이미지

자신의 올챙이 시절이 기억나지 않는 건 아직 본인이 올챙이로 남아있기 때문일 수도 있습니다.

익명 사용자의 이미지

질문자님께 심한 얘기한 사람들 본인들 코드는 어떠한지 github, gitlab 함 올려보세요.
처음에 악플이 달리기 시작하면 악플이 계속 달립니다.
처음에 선플이 달리기 시작하면 선플이 계속 달립니다.

익명 사용자의 이미지

악플 달 시간 있으면 이 문제 c로 짜봐요.
https://kldp.org/node/162761

익명 사용자의 이미지

원 세상에, 어디서 뭔 스트레스를 받았길래 애먼 이곳에서 분탕질하는지 모르겠지만,
저라면 초보자 질문글에 저런 악플 달고 나면 더 자괴감 들 것 같은데...

그리고 '0'을 빼서 '0'~'9'를 대응되는 숫자로 변환하는 건 glibc에도 쓰이는 방법이에요.
https://code.woboq.org/userspace/glibc/stdlib/strl_l.c.html#388

익명 사용자의 이미지

swish95의 이미지

처음과 두번째 댓글이 이상하게 말도 안되는 댓글이 달리더라니..
조용히 넘어 가나 했더니 흙탕물이 되었군요

자기가 몇년째 개발한다고 말하는게 자신의 실력이나 능력을 알리는 방법이라고 생각하다니.. 어이가 없습니다.

------------------------------------------------------------
ProgrammingHolic

익명 사용자의 이미지

0-9 사이 숫자만 입력해야만 가능한 코드네요
숫자를 입력받아서 printf로 출력하는 코드입니다
문자열은 아스키코드니 '0'을 빼는것은 숫자 아스키를 숫자로 변환하는것입니다
그럼 수고하세요

댓글 달기

Filtered HTML

  • 텍스트에 BBCode 태그를 사용할 수 있습니다. URL은 자동으로 링크 됩니다.
  • 사용할 수 있는 HTML 태그: <p><div><span><br><a><em><strong><del><ins><b><i><u><s><pre><code><cite><blockquote><ul><ol><li><dl><dt><dd><table><tr><td><th><thead><tbody><h1><h2><h3><h4><h5><h6><img><embed><object><param><hr>
  • 다음 태그를 이용하여 소스 코드 구문 강조를 할 수 있습니다: <code>, <blockcode>, <apache>, <applescript>, <autoconf>, <awk>, <bash>, <c>, <cpp>, <css>, <diff>, <drupal5>, <drupal6>, <gdb>, <html>, <html5>, <java>, <javascript>, <ldif>, <lua>, <make>, <mysql>, <perl>, <perl6>, <php>, <pgsql>, <proftpd>, <python>, <reg>, <spec>, <ruby>. 지원하는 태그 형식: <foo>, [foo].
  • web 주소와/이메일 주소를 클릭할 수 있는 링크로 자동으로 바꿉니다.

BBCode

  • 텍스트에 BBCode 태그를 사용할 수 있습니다. URL은 자동으로 링크 됩니다.
  • 다음 태그를 이용하여 소스 코드 구문 강조를 할 수 있습니다: <code>, <blockcode>, <apache>, <applescript>, <autoconf>, <awk>, <bash>, <c>, <cpp>, <css>, <diff>, <drupal5>, <drupal6>, <gdb>, <html>, <html5>, <java>, <javascript>, <ldif>, <lua>, <make>, <mysql>, <perl>, <perl6>, <php>, <pgsql>, <proftpd>, <python>, <reg>, <spec>, <ruby>. 지원하는 태그 형식: <foo>, [foo].
  • 사용할 수 있는 HTML 태그: <p><div><span><br><a><em><strong><del><ins><b><i><u><s><pre><code><cite><blockquote><ul><ol><li><dl><dt><dd><table><tr><td><th><thead><tbody><h1><h2><h3><h4><h5><h6><img><embed><object><param>
  • web 주소와/이메일 주소를 클릭할 수 있는 링크로 자동으로 바꿉니다.

Textile

  • 다음 태그를 이용하여 소스 코드 구문 강조를 할 수 있습니다: <code>, <blockcode>, <apache>, <applescript>, <autoconf>, <awk>, <bash>, <c>, <cpp>, <css>, <diff>, <drupal5>, <drupal6>, <gdb>, <html>, <html5>, <java>, <javascript>, <ldif>, <lua>, <make>, <mysql>, <perl>, <perl6>, <php>, <pgsql>, <proftpd>, <python>, <reg>, <spec>, <ruby>. 지원하는 태그 형식: <foo>, [foo].
  • You can use Textile markup to format text.
  • 사용할 수 있는 HTML 태그: <p><div><span><br><a><em><strong><del><ins><b><i><u><s><pre><code><cite><blockquote><ul><ol><li><dl><dt><dd><table><tr><td><th><thead><tbody><h1><h2><h3><h4><h5><h6><img><embed><object><param><hr>

Markdown

  • 다음 태그를 이용하여 소스 코드 구문 강조를 할 수 있습니다: <code>, <blockcode>, <apache>, <applescript>, <autoconf>, <awk>, <bash>, <c>, <cpp>, <css>, <diff>, <drupal5>, <drupal6>, <gdb>, <html>, <html5>, <java>, <javascript>, <ldif>, <lua>, <make>, <mysql>, <perl>, <perl6>, <php>, <pgsql>, <proftpd>, <python>, <reg>, <spec>, <ruby>. 지원하는 태그 형식: <foo>, [foo].
  • Quick Tips:
    • Two or more spaces at a line's end = Line break
    • Double returns = Paragraph
    • *Single asterisks* or _single underscores_ = Emphasis
    • **Double** or __double__ = Strong
    • This is [a link](http://the.link.example.com "The optional title text")
    For complete details on the Markdown syntax, see the Markdown documentation and Markdown Extra documentation for tables, footnotes, and more.
  • web 주소와/이메일 주소를 클릭할 수 있는 링크로 자동으로 바꿉니다.
  • 사용할 수 있는 HTML 태그: <p><div><span><br><a><em><strong><del><ins><b><i><u><s><pre><code><cite><blockquote><ul><ol><li><dl><dt><dd><table><tr><td><th><thead><tbody><h1><h2><h3><h4><h5><h6><img><embed><object><param><hr>

Plain text

  • HTML 태그를 사용할 수 없습니다.
  • web 주소와/이메일 주소를 클릭할 수 있는 링크로 자동으로 바꿉니다.
  • 줄과 단락은 자동으로 분리됩니다.
댓글 첨부 파일
이 댓글에 이미지나 파일을 업로드 합니다.
파일 크기는 8 MB보다 작아야 합니다.
허용할 파일 형식: txt pdf doc xls gif jpg jpeg mp3 png rar zip.
CAPTCHA
이것은 자동으로 스팸을 올리는 것을 막기 위해서 제공됩니다.