문자 배열과 문자 포인터 변수를 사용하여 문자열을 저장하고 연산할 수 있습니다. 그러나 둘 사이에는 차이가 있습니다. 사용 시 다음 사항에 주의해야 합니다.
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”则程序正常运行,原因如前所述。