ページ 11

配列とポインタ

Posted: 2011年12月02日(金) 11:24
by てる
C言語はじめて半年の超初心者です。
大学の課題で、指定された7個の文字列の長さをカウントして、文字列とその長さを表示するプログラムを作成(ただしポインタを使用してstrlenは使わないこと)という課題が出ました。
自分でプログラムを作ったのですが、8行目でコンパイルエラーになります・・・・
ちなみにGNOME端末を使ってます。

どうおかしいか教えてください。お願いします。
とりあえず、文字をたどって終端までcount変数の値を増やしていくつもりで書いています。

コード:

#include <stdio.h>

int main(void){
	char *name[] = {"Izumi", "Kanto", "Kudo", "Sato", "Sugawara", "Matsuda", "Wada", NULL};
	int i = 0;
	int count = 0;
	while(name[i] != NULL){
		while(*(name[i]+count) != NULL){
			count++;
		}
		printf("%s 文字数%d\n", name[i], count);
		count = 0;
		i++;
	}
	
	return 0;
}

Re: 配列とポインタ

Posted: 2011年12月02日(金) 11:28
by beatle
綺麗なプログラムを書きますね。良いと思います。
さて、NULLというのは、「無効なポインタ」を意味します。
一方、C言語の文字列の終端文字は「ナル文字」といって、'\0'(または数値の0)で表します。
NULLポインタとNULL文字は違います。

Re: 配列とポインタ

Posted: 2011年12月08日(木) 15:09
by てる
なるほど!
解決しました★
ありがとうございます。