但是pp是一个地址,怎么能比较?换成*pp,*p又为什么不行?你的意思是p的值为12345678吗
追答PP表示的就是a[9]的值,*pp=a表示是PP指向a的地址,那么*pp的值就是a[9]数组的第一个值,同理*p也就是“123456789”中的“1”,怎么不可以比较,只是现在比较的是,两个char型的值,并不是你想比较的两个字符串的值。
C语言中指针字符处理如strcmp()...为什么圆括号中不是指针指向,而是指 ...
指针指向得到的是一个地址,而变量名指的是整个字符串的内容。如:char *p="12345678";其实*p等于的值是字符串"12345678"的第一个值。
C语言程序 用指针实现字符串比较函数strcmp
所以当你输入abc,abc的时候计算识别你的第一个字符串是abc,abc 第二个字符串为\\n 所以你这里得到的始终是1 至于解决的办法:让计算机识别你的分隔符号 那方法就很多了,比如 scanf("%s%s",a,b);输入的时候用空白符(空格,tab,回车键)相间隔 ...
c语言指针与strcmp的问题
或者,若thach_vide函数返回的是thach的指针的话,thach* th=*&*^*^&*^
C语言:strcmp(*(char**)a,*(char**)b))
的差别在于strcmp((char*)a,(char*)b))中的a和b已经是某种类型的指针(不是指针的指针)了,就无需先强制转换成char **了,只需要转换成char * 就可以了 最后一个:return(*(char *)a-*(char *)b),是把指针a和b转换成char * 然后解引用一次后就得到了指针所指向的字符了,返回的值是两...
c语言 菜鸟提问 strcmp和数组指针相关
直接用gets(input[i]);之前你没有给input[i]指针一个明确的指向,程序有可能会崩溃。所以,先用input[i] = buffer;给它一个指向,这就不会有问题了。另外:你的buffer字符串只含有一个元素,你输入的字符串只能是包含一个元素,那就不是原题的要求了。你将buffer的空间加大,例如可以改为:buffe...
C语言 用指针实现字符串比较函数strcmp 为啥输出乱码
printf("%d\\n",&i); 应改为 printf("%d\\n",i);你这样输出的是变量i的地址。去掉地址符才是i的值。希望有所帮助。
c语言中strcmp的用法
在C语言中,strcmp函数的标准原型为:`int strcmp;`。它接受两个常量字符指针作为参数,这两个指针指向需要比较的字符串。返回值解释:1. 如果返回值是负数,那么第一个字符串小于第二个字符串。2. 如果返回值是正数,那么第一个字符串大于第二个字符串。3. 如果返回值为零,那么两个字符串相等。...
C语言字符指针问题
举一个不是很严谨的例子。假设系统给hello的存储地址是从1开始的。那么h的存储地址是1,e的存储地址是2,以此类推。指针p指向的地址,其实是h的存储地址1。所以你用字符串输出时,用的是指针p。而*p代表的是1这个存储地址保存的值。那就是h。所以,你输出时,只能用字符输出:%c。(p+1)则代表2...
c语言中strcmp(p->name,s)是什么意思?
strcmp("acc","abc") string不等,结果和上面相反,返回一个不一定是几的正整数。而在c语言中,因为没有布尔类型变量,所以if 靠 所以 bits 的值来判断真假,全零表示假,其他一律为真,简单的说,就是如果if()括号内的表达式为0时为假,其他所有情况都为真(记住是数值0,而不是字符‘0’,...
c语言中的strcmp字符串比较函数是输入两个指针还是两个字符串?
int strcmp(char *s1,char * s2);这里char *s1可以是一个字符串,其实该函数参数取的是字符串的首地址,一直读取到'\\0'结束(字符串型的末尾都有一个字符'\\0'),这样就把整个字符串读进去了。所以,也可以用字符串指针的形式,指针就是地址,把字符串的首地址赋值给一个指针p,那么p同样可以...