利用指针求字符串长度,其中p-s的含义,求解释
发布网友
发布时间:2022-05-06 08:43
我来回答
共2个回答
热心网友
时间:2022-06-29 04:08
p-s就是将字符数组的尾地址减首地址,因为数组中的数据是连续存储的,这样一减之后,得到的就是字符数组的长度。
热心网友
时间:2022-06-29 04:08
地址操作啊,想法不错。
内存指针保存的其实是一个地址(int型),当
char *p=s;
while(*p!='\0')
{p++;}
执行后,p指向的就是s指针的末尾地址,所以。。可以得到字符串长度。
利用指针求字符串长度,其中p-s的含义,求解释
p-s就是将字符数组的尾地址减首地址,因为数组中的数据是连续存储的,这样一减之后,得到的就是字符数组的长度。
c语言计算字符串的长度(用指针)
{ char s[20];char*p;printf("please input a string(less than 20 character):\n");//scanf("%s",s);不能读入空格 gets(s);p=s;while(*p!='\0')p++;printf("The string lenth is%d\n",p-s);return 0;} printf()函数的调用格式为:printf("<格式化字符串>",<参量表>)。其中...
...{char *p=s; while (*p!='\0') p++; return(p-s); } main() {prin...
// 因为 s 是一个【字符串的首地址】(首地址就是第一个字符的地址),// 把 s 赋值给指针 p ,则 p 也是 s 指向的字符串的首地址 char *p=s;// 下面的 while 循环的意思是:// 当指针 p 指向的 s 中的字符【不是 "\0"】// 则指针 p 指向字符串中的下一个字符,循环继续 //...
c++函数,求解释 int f(char *s) { char *p=s; while(*p!=
这个函数是用来输出字符串长度的。while(*p!='\0')p++; 是不停地向后遍历字符串,直到字符串结束。return (p-s);是返回一共向后遍历了多少个字符(走了多少步)。实际上字符串的数量是通过字符串最后一个字符的指针减去第一个字符的指针得到的。
C语言,用指针编写一个求字符串长度的函数(不要用strlen函数)_百度知...
include <stdio.h>int len(char *s){ char *p; for(p=s;*p;p++); return p-s;}int main(){ printf("%d\n",len("Hello World")); return 0;}
在c++指针方面的知识里, P= ﹠a和﹡P= ﹠a有什么区别,分别代表什么含义...
指针所指向的内存区就是从指针的值所代表的那个内存地址开始,长度为sizeof(指针所指向的类型)的一片内存区。以后,我们说一个指针的值是XX,就相当于说该指针指向了以XX为首地址的一片内存区域;我们说一个指针指向了某块 内存区域,就相当于说该指针的值是这块内存区域的首地址。 指针所指向的内存区和指针所指向...
C++高手求助。利用指针编写程序实现在一个字符串的任意位置上插入一个...
int len=strlen(s); // 计算字符串的长度 if(n<=0){ // 如果n<=0就插入到第一个字符的位置 char *p=s; // 指针p指向字符串的首地址 p=p+len+1; // p指向该字符串的末尾再加一的地址 do{ p=*(--p); // 将指针p指向的前一个地址的值赋给当前地址 }while(p>s);// p...
写一函数,求一字符串的长度(要求用指针)
char* p = str;printf("请输入str\n");for (int i = 0, ch = '\0';ch != '\n'; ++i) { ch = getchar();if (i >= N) {//当超出字符串长度时, 继续接受键盘输入的字符,直到输入\n为止 continue;} if (ch == '\n' || i == N - 1) { p[i] = '\0';continue...
问两道有关c语言字符指针的问题,请将程序每一步的意思告诉我,谢谢啦
第一题答案:B。理由:*s与*t都是取出此时地址存储的值,while()语句里面的意思是,当指针s与t都不为空并且s指向的值等于t指向的值。。。当s或者t为空或者t与s指向的值不同时,while()结束,返回此时s指向的值减去t指向的值,所以为比较两个字符串的大小;第二题答案:A。理由:x的地址赋值...
C语言问题:指针变量,数组名,字符串常量的区别。
数组s中的内容是: "china"指针变量p中的内容是: s[0]的地址(&s[0])一个是字符串 一个是地址 不一样 (C)s数组长度和p所指向的字符串长度相等 s数组长度包括 '\0'的位置 p所指向的字符串长度不包括 '\0'的位置 s数组长度 == p所指向的字符串长度 + 1 (1就是'\0'占有...