文字列の扱いについて説明するために、NULターミネータ・文字コード などの説明のあと、文字コードによる演算例を説明する。 配列名は、配列の先頭アドレスを示すことを説明し、文字列演算での 初歩的なミスの事例などの説明を行う。
先週までの説明に、N(2,8,10,16)進法の説明などが多かったので、 文字列を扱うプログラム例として文字列を数値に変換するプログラム 例を見せて説明する。来週は10進法のプログラムを課題として 2,8,16進に拡張させるテーマに取り組む予定。
int my_atoi( char s[] ) { int i , v = 0 ; /* エラーチェック無し */ for( i = 0 ; i != 'int my_atoi( char s[] ) { int i , v = 0 ; /* エラーチェック無し */ for( i = 0 ; i != '\0' ; i++ ) v = v * 10 + s[i] - '0' ; return v ; } char* my_itoa( char s[] , int x ) { int i ; /* short int 程度を限定 */ s[ 5 ] = '\0' ; for( i = 4 ; i >= 0 ; i-- ) { int d = x % 10 ; s[ i ] = d + '0' ; x /= 10 ; } return s ; }' ; i++ ) v = v * 10 + s[i] - '0' ; return v ; } char* my_itoa( char s[] , int x ) { int i ; /* short int 程度を限定 */ s[ 5 ] = 'int my_atoi( char s[] ) { int i , v = 0 ; /* エラーチェック無し */ for( i = 0 ; i != '\0' ; i++ ) v = v * 10 + s[i] - '0' ; return v ; } char* my_itoa( char s[] , int x ) { int i ; /* short int 程度を限定 */ s[ 5 ] = '\0' ; for( i = 4 ; i >= 0 ; i-- ) { int d = x % 10 ; s[ i ] = d + '0' ; x /= 10 ; } return s ; }' ; for( i = 4 ; i >= 0 ; i-- ) { int d = x % 10 ; s[ i ] = d + '0' ; x /= 10 ; } return s ; }