質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.48%
C

C言語は、1972年にAT&Tベル研究所の、デニス・リッチーが主体となって作成したプログラミング言語です。 B言語の後継言語として開発されたことからC言語と命名。そのため、表記法などはB言語やALGOLに近いとされています。 Cの拡張版であるC++言語とともに、現在世界中でもっとも普及されているプログラミング言語です。

GCC

GCCはGNU Compiler Collectionの略です。LinuxのC言語コンパイラのデファクトスタンダードであり、数多くの他言語やプラットフォームサポートもします。

Q&A

解決済

4回答

2433閲覧

C言語 改行方法などの違いについて

suda-teturo.

総合スコア1

C

C言語は、1972年にAT&Tベル研究所の、デニス・リッチーが主体となって作成したプログラミング言語です。 B言語の後継言語として開発されたことからC言語と命名。そのため、表記法などはB言語やALGOLに近いとされています。 Cの拡張版であるC++言語とともに、現在世界中でもっとも普及されているプログラミング言語です。

GCC

GCCはGNU Compiler Collectionの略です。LinuxのC言語コンパイラのデファクトスタンダードであり、数多くの他言語やプラットフォームサポートもします。

0グッド

0クリップ

投稿2021/04/01 11:44

C言語を勉強中なのですが、改行方法などの違いがわからないので教えて欲しいです。
macにインストールしたvscodeでは改行する際、\nを使うのですが、買った本(やさしいC)では改行が¥nとなっており、改行以外でもvscodeやオンライン学習動画では文字が(%s)のハズが買った本では(%c)だったりなぜ違うのか調べてもわかりません。唯一見つけた記事では開発環境によって違うとしか書いてありませんでした。
誰か教えてください。

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

guest

回答4

0

¥は読んで字の如く日本だけでしか使いません。だから海外に合わせて作られているMacやVscodeは本来使われるバックスラッシュ()が使われます。
(Windowsのメモ帳とかローカライズされているので円マーク)
また、%cと%sは、一文字と文字列で環境違いはないです

投稿2021/04/01 12:02

編集2021/04/02 08:09
tain

総合スコア241

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

0

まず、文字コードというものを理解しましょう。

厳密な話は初心者の方には難しいので文字コードとはを読んでみてください。

次に文字コードとフォントの関係を理解しましょう。
文字コードを図形で表したものがフォントだと考えておいてください。

さて、最初の頃に作られた英語中心の文字コードの一つにAsciiコードがあります。
ASCIIコード表

この中には通貨記号として$がありましたが、日本の通貨を表す円がありませんでした。
そこで、日本ではバックシュラッシュを表す92(5C)のフォントを円記号にしてAsciiコードを使っていました。そのため日本語のフォントの円記号と英語等のフォントのバックスラッシュが同じ文字コードであるのが、ご質問の一つ目の理由です。

ご質問の二つ目は、皆さんが回答されているように、文字と文字列の違いです。

C

1#include <stdio.h> 2 3int main(void) { 4 printf("%c\n", 65); 5}

をコンパイルして実行して何が表示されるかを見てみてください。

投稿2021/04/01 14:47

ppaul

総合スコア24666

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

0

ベストアンサー

買った本(やさしいC)では改行が¥nとなっており、

PDF版かなにかでしょうか。
¥(U+00A5)ではなく\(U+005C)を使ってください。

文字が(%s)のハズが買った本では(%c)だったり

printfの書式でしょうか。文字(char *)なら%s、文字(char)なら%cを使います。

C

1#include <stdio.h> 2int main(void) { 3 const char *s = "abc"; 4 printf("%s\n", s); // abc 5 printf("%c\n", s[0]);// a 6 return 0; 7}

投稿2021/04/01 12:14

can110

総合スコア38266

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

0

多分\についてはfontの問題だと思います。これはエディタのfontを任意の別なものに切り替えることで解決できます。vscodeではeditor.fontFamilyが該当です。どのフォントがいいかは宗教戦争になりますが自分はHackGenを使ってます。

オンライン学習動画では文字が(%s)のハズが買った本では(%c)だったり

これは明確に意味が違います。

C/C++言語では(というよりコンピューターでは)文字を直接扱うことはできず、文字をエンコードして数値として扱っています。これをchar型などの整数型に格納するわけですが、これをprintfなどで表示するときに、%cを用います。
一方%sは文字に対して用います。C/C++において文字列とは文字がエンコードされた数値の配列で、最後がNULL文字で終端します。

投稿2021/04/01 12:06

yumetodo

総合スコア5850

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.48%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問