<?xml version="1.0" encoding="utf-8" standalone="yes"?>
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom" xmlns:content="http://purl.org/rss/1.0/modules/content/">
  <channel>
    <title>CString on Sobamemil</title>
    <link>https://blog.sobamemil.com/en/tags/cstring/</link>
    <description>Recent content in CString on Sobamemil</description>
    <image>
      <title>Sobamemil</title>
      <url>https://blog.sobamemil.com/images/og-image.png</url>
      <link>https://blog.sobamemil.com/images/og-image.png</link>
    </image>
    <generator>Hugo</generator>
    <language>en</language>
    <lastBuildDate>Wed, 04 Mar 2020 17:45:19 +0900</lastBuildDate>
    <atom:link href="https://blog.sobamemil.com/en/tags/cstring/index.xml" rel="self" type="application/rss+xml" />
    <item>
      <title>C&#43;&#43; Programming Ch.4 Exercise 13 Solution</title>
      <link>https://blog.sobamemil.com/en/posts/067-%EB%AA%85%ED%92%88-c-programming-%EC%8B%A4%EC%8A%B5-%EB%AC%B8%EC%A0%9C-4%EC%9E%A5-13%EB%B2%88/</link>
      <pubDate>Wed, 04 Mar 2020 17:45:19 +0900</pubDate>
      <guid>https://blog.sobamemil.com/en/posts/067-%EB%AA%85%ED%92%88-c-programming-%EC%8B%A4%EC%8A%B5-%EB%AC%B8%EC%A0%9C-4%EC%9E%A5-13%EB%B2%88/</guid>
      <description>&lt;p&gt;&lt;b&gt;Problem:&lt;/b&gt;&lt;/p&gt;
&lt;p&gt;영문자로 구성된 텍스트에 대해 각 알파벳에 해당하는 문자가 몇 개인지 출력하는 히스토그램 클래스 Histogram을 만들어보자.&lt;/p&gt;
&lt;p&gt;대문자는 모두 소문자로 변환하여 처리한다.&lt;/p&gt;
&lt;p&gt;Histogram 클래스를 활용하는 사례와 Execution Result는 다음과 같다.&lt;/p&gt;
&lt;table&gt;
  &lt;thead&gt;
      &lt;tr&gt;
          &lt;th&gt;&lt;/th&gt;
          &lt;th&gt;&lt;/th&gt;
      &lt;/tr&gt;
  &lt;/thead&gt;
  &lt;tbody&gt;
      &lt;tr&gt;
          &lt;td&gt;1  2  3  4  5&lt;/td&gt;
          &lt;td&gt;Histogram elvisHisto(&amp;quot;Wise men say, only fools rush in But I can&#39;t help, &amp;quot;);  elvisHisto.put(&amp;quot;falling in love with you&amp;quot;);  elvisHisto.putc(&#39;-&#39;);  elvisHisto.put(&amp;quot;Elvis Presley&amp;quot;);  elvisHisto.print();&lt;/td&gt;
      &lt;/tr&gt;
  &lt;/tbody&gt;
&lt;/table&gt;
&lt;p&gt;&lt;b&gt;Execution Result:&lt;/b&gt;&lt;/p&gt;
&lt;p&gt;&lt;img loading=&#34;lazy&#34; src=&#34;https://img.sobamemil.com/posts/67/img_1.png&#34;&gt;&lt;/p&gt;
&lt;p&gt;&lt;b&gt;Objective &amp;amp; Hints:&lt;/b&gt;&lt;/p&gt;
&lt;p&gt;클래스 만들기 종합 응용&lt;/p&gt;
&lt;p&gt;&lt;b&gt;Code:&lt;/b&gt;&lt;/p&gt;
&lt;table&gt;
  &lt;thead&gt;
      &lt;tr&gt;
          &lt;th&gt;&lt;/th&gt;
          &lt;th&gt;&lt;/th&gt;
      &lt;/tr&gt;
  &lt;/thead&gt;
  &lt;tbody&gt;
      &lt;tr&gt;
          &lt;td&gt;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  31  32  33  34  35  36  37  38  39  40  41  42  43  44  45  46  47  48  49  50  51  52  53  54  55&lt;/td&gt;
          &lt;td&gt;#include&lt;iostream&gt;  #include&lt;string&gt;  using namespace std;    class Histogram {  string sent;  public:  Histogram(string sent);  void put(string sent);  void putc(char c);  void print();  };    Histogram::Histogram(string text){  sent = text;  cout &amp;lt;&amp;lt; sent &amp;lt;&amp;lt; endl;  }  void Histogram::put(string text){  sent += text;  cout &amp;lt;&amp;lt; text;  }  void Histogram::putc(char c){  sent += c;  cout &amp;lt;&amp;lt; c;  }  void Histogram::print(){  int alpha[26] = { 0 };  int num = 0;  for (int i = 0; i &amp;lt; sent.length(); i++) {  if(isalpha(sent[i])){  char c = tolower(sent[i]);  alpha[c - &#39;a&#39;]++;  num++;  }  }  cout &amp;lt;&amp;lt; endl &amp;lt;&amp;lt; endl;  cout &amp;lt;&amp;lt; &amp;quot;총 알파벳 수 &amp;quot; &amp;lt;&amp;lt; num;  cout &amp;lt;&amp;lt; endl &amp;lt;&amp;lt; endl;  for (int i = 0; i &amp;lt; 26; ++i) {  char c = &#39;a&#39; + i;  cout &amp;lt;&amp;lt; c &amp;lt;&amp;lt; &amp;quot; (&amp;quot; &amp;lt;&amp;lt; alpha[i] &amp;lt;&amp;lt; &amp;quot;)\t: &amp;quot;;  for (int j = 0; j &amp;lt; alpha[i]; ++j) {  cout &amp;lt;&amp;lt; &amp;quot;*&amp;quot;;  }  cout &amp;lt;&amp;lt; endl;  }  }    int main() {  Histogram elvisHisto(&amp;quot;Wise men say, only fools rush in But I can&#39;t help, &amp;quot;);  elvisHisto.put(&amp;quot;falling in love with you&amp;quot;);  elvisHisto.putc(&#39;-&#39;);  elvisHisto.put(&amp;quot;Elvis Presley&amp;quot;);  elvisHisto.print();  }&lt;/td&gt;
      &lt;/tr&gt;
  &lt;/tbody&gt;
&lt;/table&gt;
&lt;p&gt;&lt;b&gt;Explanation:&lt;/b&gt;&lt;/p&gt;</description>
    </item>
    <item>
      <title>C&#43;&#43; Programming Ch.2 Exercise 15 Solution</title>
      <link>https://blog.sobamemil.com/en/posts/041-%EB%AA%85%ED%92%88-c-programming-%EC%8B%A4%EC%8A%B5-%EB%AC%B8%EC%A0%9C-2%EC%9E%A5-15%EB%B2%88/</link>
      <pubDate>Fri, 28 Feb 2020 20:00:03 +0900</pubDate>
      <guid>https://blog.sobamemil.com/en/posts/041-%EB%AA%85%ED%92%88-c-programming-%EC%8B%A4%EC%8A%B5-%EB%AC%B8%EC%A0%9C-2%EC%9E%A5-15%EB%B2%88/</guid>
      <description>&lt;p&gt;&lt;b&gt;Problem:&lt;/b&gt;&lt;/p&gt;
&lt;p&gt;덧셈(+), 뺄셈(-), 곱셈(*), 나눗셈(/), 나머지(%)의 정수 5척 연산을 할 수 있는 프로그램을 작성하라. 식은 다음과 같은 형식으로 입력된다. 정수와 연산자는 하나의 빈칸으로 분리된다.&lt;/p&gt;
&lt;p&gt;&lt;img loading=&#34;lazy&#34; src=&#34;https://img.sobamemil.com/posts/41/img_1.png&#34;&gt;&lt;/p&gt;
&lt;p&gt;&lt;b&gt;Objective &amp;amp; Hints:&lt;/b&gt;&lt;/p&gt;
&lt;p&gt;공백을 포함하는 문자열 읽기, C++ 프로그램 종합 응용&lt;/p&gt;
&lt;p&gt;한 줄을 문자열로 읽고, 공백 문자를 찾아 연산자와 두 개의 피연산자를 구분한 후, 계산하면 됩니다.&lt;/p&gt;
&lt;p&gt;문자열을 정수로 바꿀 때 atoi() 함수를 이용하면 됩니다.&lt;/p&gt;
&lt;p&gt;예를 들면 atoi(&amp;quot;34&amp;quot;) = 34 입니다.&lt;/p&gt;
&lt;p&gt;&lt;b&gt;Execution Result:&lt;/b&gt;&lt;/p&gt;
&lt;p&gt;&lt;img loading=&#34;lazy&#34; src=&#34;https://img.sobamemil.com/posts/41/img_2.png&#34;&gt;&lt;/p&gt;
&lt;p&gt;&lt;b&gt;Code:&lt;/b&gt;&lt;/p&gt;
&lt;table&gt;
  &lt;thead&gt;
      &lt;tr&gt;
          &lt;th&gt;&lt;/th&gt;
          &lt;th&gt;&lt;/th&gt;
      &lt;/tr&gt;
  &lt;/thead&gt;
  &lt;tbody&gt;
      &lt;tr&gt;
          &lt;td&gt;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  31  32  33  34  35  36 37&lt;/td&gt;
          &lt;td&gt;#include&lt;iostream&gt;  #include&lt;cstring&gt; #include&lt;cstdlib&gt;  using namespace std;    int main(){    char sic[100];  char *symbol;    int front,rear;    while(true){  cout &amp;lt;&amp;lt; &amp;quot;? &amp;quot;;  cin.getline(sic,100);  front = atoi(strtok(sic, &amp;quot; &amp;quot;));  symbol = strtok(NULL, &amp;quot; &amp;quot;);  rear = atoi(strtok(NULL, &amp;quot; &amp;quot;));    if(*symbol == &#39;+&#39;){  cout &amp;lt;&amp;lt; front &amp;lt;&amp;lt; &amp;quot; + &amp;quot; &amp;lt;&amp;lt; rear &amp;lt;&amp;lt; &amp;quot; = &amp;quot; &amp;lt;&amp;lt; front+rear &amp;lt;&amp;lt; endl;  }  else if(*symbol == &#39;-&#39;){  cout &amp;lt;&amp;lt; front &amp;lt;&amp;lt; &amp;quot; - &amp;quot; &amp;lt;&amp;lt; rear &amp;lt;&amp;lt; &amp;quot; = &amp;quot; &amp;lt;&amp;lt; front-rear &amp;lt;&amp;lt; endl;  }  else if(*symbol == &#39;*&#39;){  cout &amp;lt;&amp;lt; front &amp;lt;&amp;lt; &amp;quot; * &amp;quot; &amp;lt;&amp;lt; rear &amp;lt;&amp;lt; &amp;quot; = &amp;quot; &amp;lt;&amp;lt; front*rear &amp;lt;&amp;lt; endl;  }  else if(*symbol == &#39;/&#39;){  cout &amp;lt;&amp;lt; front &amp;lt;&amp;lt; &amp;quot; / &amp;quot; &amp;lt;&amp;lt; rear &amp;lt;&amp;lt; &amp;quot; = &amp;quot; &amp;lt;&amp;lt; front/rear &amp;lt;&amp;lt; endl;  }  else if(*symbol == &#39;%&#39;){  cout &amp;lt;&amp;lt; front &amp;lt;&amp;lt; &amp;quot; % &amp;quot; &amp;lt;&amp;lt; rear &amp;lt;&amp;lt; &amp;quot; = &amp;quot; &amp;lt;&amp;lt; front%rear &amp;lt;&amp;lt; endl;  }  }  return 0;  }&lt;/td&gt;
      &lt;/tr&gt;
  &lt;/tbody&gt;
&lt;/table&gt;
&lt;p&gt;&lt;b&gt;Explanation:&lt;/b&gt;&lt;/p&gt;</description>
    </item>
    <item>
      <title>C&#43;&#43; Programming Ch.2 Exercise 14 Solution</title>
      <link>https://blog.sobamemil.com/en/posts/040-%EB%AA%85%ED%92%88-c-programming-%EC%8B%A4%EC%8A%B5-%EB%AC%B8%EC%A0%9C-2%EC%9E%A5-14%EB%B2%88/</link>
      <pubDate>Fri, 28 Feb 2020 19:34:38 +0900</pubDate>
      <guid>https://blog.sobamemil.com/en/posts/040-%EB%AA%85%ED%92%88-c-programming-%EC%8B%A4%EC%8A%B5-%EB%AC%B8%EC%A0%9C-2%EC%9E%A5-14%EB%B2%88/</guid>
      <description>&lt;p&gt;&lt;b&gt;Problem:&lt;/b&gt;&lt;/p&gt;
&lt;p&gt;커피를 주문하는 간단한 C++ 프로그램을 작성해보자. 커피 종류는 &amp;quot;에스프레소&amp;quot;, &amp;quot;아메리카노&amp;quot;, &amp;quot;카푸치노&amp;quot;의 3가지이며 가격은 각각 2000원, 2300원, 2500원이다. 하루에 20000원 이상 벌게 되면 카페를 닫는다. Execution Result와 같이 작동하는 프로그램을 작성하라.&lt;/p&gt;
&lt;p&gt;&lt;b&gt;Objective &amp;amp; Hints:&lt;/b&gt;&lt;/p&gt;
&lt;p&gt;C++ 프로그램 구성. cin, strcmp() 활용 종합 연습&lt;/p&gt;
&lt;p&gt;char coffee[100]; int num; cin &amp;gt;&amp;gt; coffee &amp;gt;&amp;gt; num; 으로 커피 이름과 잔 수를 입력받으면 됩니다.&lt;/p&gt;
&lt;p&gt;또한 커피는 if(strcmp(coffee, &amp;quot;에스프레소&amp;quot;) == 0 )과 같이 비교하면 됩니다.&lt;/p&gt;
&lt;p&gt;&lt;b&gt;Execution Result:&lt;/b&gt;&lt;/p&gt;</description>
    </item>
    <item>
      <title>C&#43;&#43; Programming Ch.2 Exercise 8 Solution</title>
      <link>https://blog.sobamemil.com/en/posts/034-%EB%AA%85%ED%92%88-c-programming-%EC%8B%A4%EC%8A%B5-%EB%AC%B8%EC%A0%9C-2%EC%9E%A5-8%EB%B2%88/</link>
      <pubDate>Fri, 28 Feb 2020 17:24:52 +0900</pubDate>
      <guid>https://blog.sobamemil.com/en/posts/034-%EB%AA%85%ED%92%88-c-programming-%EC%8B%A4%EC%8A%B5-%EB%AC%B8%EC%A0%9C-2%EC%9E%A5-8%EB%B2%88/</guid>
      <description>&lt;p&gt;&lt;b&gt;Problem:&lt;/b&gt;&lt;/p&gt;
&lt;p&gt;한 라인에 &#39;;&#39; 으로 5개의 이름을 구분하여 입력받아, 각 이름을 끊어내어 화면에 출력하고 가장 긴 이름을 판별하라.&lt;/p&gt;
&lt;p&gt;&lt;b&gt;Objective &amp;amp; Hints:&lt;/b&gt;&lt;/p&gt;
&lt;p&gt;cin.getline()으로 문자열 읽기&lt;/p&gt;
&lt;p&gt;&#39;;&#39;까지 문자열을 읽고자 하면 다음 코드를 사용하고&lt;/p&gt;
&lt;table&gt;
  &lt;thead&gt;
      &lt;tr&gt;
          &lt;th&gt;&lt;/th&gt;
          &lt;th&gt;&lt;/th&gt;
      &lt;/tr&gt;
  &lt;/thead&gt;
  &lt;tbody&gt;
      &lt;tr&gt;
          &lt;td&gt;1  2&lt;/td&gt;
          &lt;td&gt;char name[100];  cin.getline(name, 100, &#39;;&#39;);&lt;/td&gt;
      &lt;/tr&gt;
  &lt;/tbody&gt;
&lt;/table&gt;
&lt;p&gt;5개 읽어야 하니 5번 루프를 돈다.&lt;/p&gt;
&lt;p&gt;&lt;b&gt;Execution Result:&lt;/b&gt;&lt;/p&gt;
&lt;p&gt;&lt;img loading=&#34;lazy&#34; src=&#34;https://img.sobamemil.com/posts/34/img_1.png&#34;&gt;&lt;/p&gt;
&lt;p&gt;&lt;b&gt;Code:&lt;/b&gt;&lt;/p&gt;
&lt;table&gt;
  &lt;thead&gt;
      &lt;tr&gt;
          &lt;th&gt;&lt;/th&gt;
          &lt;th&gt;&lt;/th&gt;
      &lt;/tr&gt;
  &lt;/thead&gt;
  &lt;tbody&gt;
      &lt;tr&gt;
          &lt;td&gt;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&lt;/td&gt;
          &lt;td&gt;#include&lt;iostream&gt;  #include&lt;cstring&gt;  using namespace std;    int main() {    int A=0;  int i;  char name[100];  char longName[100];    cout &amp;lt;&amp;lt; &amp;quot;5 명의 이름을 &#39;;&#39; 으로 구분하여 입력하세요 \n&amp;gt;&amp;gt;&amp;quot;;    for(i=1;i&amp;lt;6;i++){  cin.getline(name,100,&#39;;&#39;);  cout &amp;lt;&amp;lt; i &amp;lt;&amp;lt; &amp;quot; : &amp;quot; &amp;lt;&amp;lt; name &amp;lt;&amp;lt; endl;  if(A &amp;lt; strlen(name)) {  A = strlen(name);  strcpy(longName,name);  }  }  cout &amp;lt;&amp;lt; &amp;quot;가장 긴 이름은 &amp;quot; &amp;lt;&amp;lt; longName;    return 0;  }&lt;/td&gt;
      &lt;/tr&gt;
  &lt;/tbody&gt;
&lt;/table&gt;
&lt;p&gt;&lt;b&gt;Explanation:&lt;/b&gt;&lt;/p&gt;</description>
    </item>
    <item>
      <title>C&#43;&#43; Programming Ch.2 Exercise 7 Solution</title>
      <link>https://blog.sobamemil.com/en/posts/033-%EB%AA%85%ED%92%88-c-programming-%EC%8B%A4%EC%8A%B5-%EB%AC%B8%EC%A0%9C-2%EC%9E%A5-7%EB%B2%88/</link>
      <pubDate>Fri, 28 Feb 2020 17:07:48 +0900</pubDate>
      <guid>https://blog.sobamemil.com/en/posts/033-%EB%AA%85%ED%92%88-c-programming-%EC%8B%A4%EC%8A%B5-%EB%AC%B8%EC%A0%9C-2%EC%9E%A5-7%EB%B2%88/</guid>
      <description>&lt;p&gt;&lt;b&gt;Problem:&lt;/b&gt;&lt;/p&gt;
&lt;p&gt;다음과 같이 &amp;quot;yes&amp;quot;가 입력될 때까지 종료하지 않는 프로그램을 작성하라. 사용자로부터의 입력은 cin.getline() 함수를 사용하라.&lt;/p&gt;
&lt;p&gt;&lt;b&gt;Objective &amp;amp; Hints:&lt;/b&gt;&lt;/p&gt;
&lt;p&gt;공백을 포함하는 문자열 읽기&lt;/p&gt;
&lt;p&gt;&lt;b&gt;Execution Result:&lt;/b&gt;&lt;/p&gt;
&lt;p&gt;&lt;img loading=&#34;lazy&#34; src=&#34;https://img.sobamemil.com/posts/33/img_1.png&#34;&gt;&lt;/p&gt;
&lt;p&gt;&lt;b&gt;Code:&lt;/b&gt;&lt;/p&gt;
&lt;table&gt;
  &lt;thead&gt;
      &lt;tr&gt;
          &lt;th&gt;&lt;/th&gt;
          &lt;th&gt;&lt;/th&gt;
      &lt;/tr&gt;
  &lt;/thead&gt;
  &lt;tbody&gt;
      &lt;tr&gt;
          &lt;td&gt;1  2  3  4  5  6  7  8  9  10  11  12  13  14  15  16  17&lt;/td&gt;
          &lt;td&gt;#include &lt;iostream&gt;  #include &lt;cstring&gt;  using namespace std;    int main() {  char A[] = &amp;quot;yes&amp;quot;; // 배열 선언시 &amp;quot;yes&amp;quot;로 초기화  char B[100];  while(true){  cout &amp;lt;&amp;lt; &amp;quot;종료하고 싶으면 yes를 입력하세요&amp;gt;&amp;gt;&amp;quot;;  cin.getline(B,100);  if(strcmp(A,B) == 0) break;  }    cout &amp;lt;&amp;lt; &amp;quot;종료합니다...&amp;quot;;    return 0;  }&lt;/td&gt;
      &lt;/tr&gt;
  &lt;/tbody&gt;
&lt;/table&gt;
&lt;p&gt;&lt;b&gt;Explanation:&lt;/b&gt;&lt;/p&gt;</description>
    </item>
    <item>
      <title>C&#43;&#43; Programming Ch.2 Exercise 6 Solution</title>
      <link>https://blog.sobamemil.com/en/posts/032-%EB%AA%85%ED%92%88-c-programming-%EC%8B%A4%EC%8A%B5-%EB%AC%B8%EC%A0%9C-2%EC%9E%A5-6%EB%B2%88/</link>
      <pubDate>Fri, 28 Feb 2020 17:01:06 +0900</pubDate>
      <guid>https://blog.sobamemil.com/en/posts/032-%EB%AA%85%ED%92%88-c-programming-%EC%8B%A4%EC%8A%B5-%EB%AC%B8%EC%A0%9C-2%EC%9E%A5-6%EB%B2%88/</guid>
      <description>&lt;p&gt;&lt;b&gt;Problem:&lt;/b&gt;&lt;/p&gt;
&lt;p&gt;문자열을 두 개 입력받고 두 개의 문자열이 같은지 검사하는 프로그램을 작성하라. 만일 같으면 &amp;quot;같습니다&amp;quot;, 아니면 &amp;quot;같지 않습니다&amp;quot;를 출력하라.&lt;/p&gt;
&lt;p&gt;&lt;b&gt;Objective &amp;amp; Hints:&lt;/b&gt;&lt;/p&gt;
&lt;p&gt;공백 없이 입력된 문자열 읽기 (빈칸 없이 입력)&lt;/p&gt;
&lt;p&gt;&lt;b&gt;Execution Result:&lt;/b&gt;&lt;/p&gt;
&lt;p&gt;&lt;img loading=&#34;lazy&#34; src=&#34;https://img.sobamemil.com/posts/32/img_1.png&#34;&gt;&lt;/p&gt;
&lt;p&gt;&lt;b&gt;Code:&lt;/b&gt;&lt;/p&gt;
&lt;table&gt;
  &lt;thead&gt;
      &lt;tr&gt;
          &lt;th&gt;&lt;/th&gt;
          &lt;th&gt;&lt;/th&gt;
      &lt;/tr&gt;
  &lt;/thead&gt;
  &lt;tbody&gt;
      &lt;tr&gt;
          &lt;td&gt;1  2  3  4  5  6  7  8  9  10  11  12  13  14  15  16  17  18  19  20  21&lt;/td&gt;
          &lt;td&gt;#include&lt;iostream&gt;  #include&lt;cstring&gt;  using namespace std;    int main() {  char pw1[100];  char pw2[100];    cout &amp;lt;&amp;lt; &amp;quot;새 암호를 입력하세요&amp;gt;&amp;gt;&amp;quot;;  cin.getline(pw1,100);    cout &amp;lt;&amp;lt; &amp;quot;새 암호를 다시 한 번 입력하세요&amp;gt;&amp;gt;&amp;quot;;  cin.getline(pw2,100);    if(strcmp(pw1,pw2)==0)  cout &amp;lt;&amp;lt; &amp;quot;같습니다&amp;quot;;  else  cout &amp;lt;&amp;lt; &amp;quot;같지 않습니다&amp;quot;;    return 0;  }&lt;/td&gt;
      &lt;/tr&gt;
  &lt;/tbody&gt;
&lt;/table&gt;
&lt;p&gt;&lt;b&gt;Explanation:&lt;/b&gt;&lt;/p&gt;</description>
    </item>
  </channel>
</rss>
