请解决这个问题......
#include<stdio.h>
main()
{
char *name;
int length;
char *cptr=name;
name="Delhi";
printf("%s\n",name);
while(*cptr != '\0')
{
printf("%c is stored at address %u\n",*cptr,cptr);
cptr++;
}
length=cptr-name;
printf("\n Length of the string = %d\n",length);
return 0;
}
答案 0 :(得分:4)
broadcastreciever
原型不符合标准;它需要返回类型main()
。所以改成它:
int
或
int main(void)
int main(int argc, char* argv[])
printf("%c is stored at address %u\n",*cptr,cptr);
不是指针的正确说明符;您需要使用%u
代替:
%p
printf("%c is stored at address %p\n",*cptr,(void*)cptr);
length=cptr-name;
的类型为length
,可能您的计算机为64位,因此变量无法保存地址差异,导致问题变得更好int
。
size_t
并且对于最后一个输出更改了适当的说明符:
size_t length;
关于在printf("\n Length of the string = %zd\n",length);
char *cptr=name;
指针获取字符串的长度
您的计划应该是:
name="Delhi";
答案 1 :(得分:0)
如何计算字符串的长度:
#include <stdio.h>
int main(void)
{
char *s = "Hello World";
int lengthIndex = 0;
while(s[lengthIndex] != '\0')
{
lengthIndex+=1;
}
printf("Length of %s: is %d.\n",s,lengthIndex);
return 0;
}