0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 1 year has passed since last update.

【C】初めてのC言語(16. 文字列の基本)

Posted at

はじめに

学習環境

  • 今回はpaiza.ioのC言語のエディタを使いました。

文字列にまつわる業界ルール

  • 「C言語の文字列に関する業界ルール」として、以下の2つのルールが挙げられていました。
      1. 先頭要素から順に1文字ずつ文字コードを格納して文字列を表す。
      1. 最後の文字の直後には「文字コード0の文字」を必ず格納し、それ以降のメモリ空間は利用しない。
Main.c
#include <stdio.h>

int main(void){
    const char str1[10] = "Hello";
    const char str2[10] = "He\0llo";
    
    printf("%s\n", str1);
    printf("%s\n", str2);  // 「\0」が終端文字(ヌル文字)として扱われている。 
    
    return 0;
}
実行結果
Hello
He
  • 上記のルールを踏まえて、以下の様に「char配列から\0を探しながら1文字ずつ出力」すると、printf関数で文字列を全て出力するのと同じ結果が得られました。
Main.c
#include <stdio.h>

int main(void){
    const char* str = "sumomomomomomomomonouchi";
    printf("%s\n", str);  // 文字列を全て出力
    
    while (*str!='\0') {
        printf("%c", *str);  // 1文字ずつ出力
        str++;  // ポインタを1文字分進める
    }
    
    return 0;
}
実行結果
sumomomomomomomomonouchi
sumomomomomomomomonouchi

参考URL

0
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?