解答例10-2

【問1】

/* ポインタが指している文字列を1文字ずつ表示するプログラム */
#include <stdio.h>

int main( void )
{
	char str[] = "Computer";
	char *p;			/* ポインタの宣言 */
	
	p = str;			/* ポインタの値設定 */
	
	while ( *p !='\0' ) {	/* NULまでループ */
		putchar( *p );	/* ポインタの指す文字を出力 */
		p++;		/* ポインタの更新 */
	}
	putchar( '\n' );
	
	return 0;
}

【問2】

#include <stdio.h>
#include <ctype.h>

int main( void )
{
	char str[] = "AbcDefGHijk1234lmNOP";
	char *p;

	p = str;
	while ( *p != '\0' ) {
		*p = toupper( *p );
		p++;
	}
	printf( "str = %s\n", str );

	return 0;
}

【問3】

#include <stdio.h>

int main( void )
{
	char str1[] = "ABCDEFGHIJKLMNOPQRSTUVWXYZ";
	char str2[30];
	char *p1, *p2;
	
	p1 = str1;
	p2 = str2;
	
	while ( *p1 != '\0' ) {	/* (1)p1をstr1の最後まで進める */
		p1++;
	}
	while (p1 > str1) {	/* p1がstr1を指す間ループ */
		p1--;		/* (2) */
		*p2 = *p1;	/* (3)p2の指すところにp1の指す値を代入 */
		p2++;		/* (4) */
	}
	*p2 = '\0';		/* (5)'\0'の付加 */
	printf( "str1 = %s\n", str1 );
	printf( "str2 = %s\n", str2 );

	return 0;
}

戻る


banner初心者のためのポイント学習C言語」
Copyright(c) 2000-2004 TOMOJI All Rights Reserved