文字配列と文字ポインタ変数を使用して、文字列を保存および操作できます。しかし、両者には違いがあります。使用する場合は、次の問題に注意する必要があります:
1. 文字列ポインター変数自体は、文字列の最初のアドレスを格納するために使用される変数です。文字列自体は、最初のアドレスで始まる連続したメモリ空間に格納され、' で終わります。
View Code #include<iostream.h> #include<ctype.h> /******************************************************************************/ /* * Convert a string to lower case */ int strlower(char *string) { if(string==NULL) { return -1; } while(*string) { if(isupper(*string)) *string=tolower(*string); string++; } *string='\0'; return 0; } /*char *strlower(char *string) { char *s; if (string == NULL) { return NULL; } s = string; while (*s) { if (isupper(*s)) { *s = (char) tolower(*s); } s++; } *s = '\0'; return string; } */ void main() { char *test="ABCDEFGhijklmN"; strlower(test); cout<<test<<endl; }
其中,如果采用char *test=”ABCDEFGhijklmN”;会产生运行时错误。Char test[]=”ABCDEFGhijklmN”则程序正常运行,原因如前所述。