#include <stdio.h>
#include <stdlib.h>
int strcmp(char *source, char *dest) { //实现字符串对比
int i;
//*source='A'; 当source指向字符串常量时不允许,指向栈空间时可以。
for(i=0; source[i]==dest[i]&& source[i]!='\0'; i++)
;
if (source[i]=='\0' && dest[i]=='\0')
return 0;
else
return -1;
}
int main() {
int c,d;
//source[0]='A'; 不允许,赋值操作不合法,source是指向字符串常量的指针,字符串常量存在只读区域,只可读不可写
//a[0]='A'; 这允许,a[]是局部变量,对应于内存中的栈
c=strcmp(source,dest);
d=strcmp(a,b);
printf("c=%d, d=%d\n",c, d);
//printf("%s\n", source);
system("pause");
return 0;
#include <stdlib.h>
int strcmp(char *source, char *dest) { //实现字符串对比
int i;
//*source='A'; 当source指向字符串常量时不允许,指向栈空间时可以。
for(i=0; source[i]==dest[i]&& source[i]!='\0'; i++)
;
if (source[i]=='\0' && dest[i]=='\0')
return 0;
else
return -1;
}
int main() {
char *source="asd", *dest="asd"; //“asd”为字符串常量,对应于内存中只读数据段,故这里定义可以改成const char *source="asd", *dest="asd"
char a[]="asdf", b[]="asd";int c,d;
//source[0]='A'; 不允许,赋值操作不合法,source是指向字符串常量的指针,字符串常量存在只读区域,只可读不可写
//a[0]='A'; 这允许,a[]是局部变量,对应于内存中的栈
c=strcmp(source,dest);
d=strcmp(a,b);
printf("c=%d, d=%d\n",c, d);
//printf("%s\n", source);
system("pause");
return 0;