c语言中,字符串指针怎样实现对字符串的读取与存储? 10
展开全部
比如char s[30];
数组名s可以看作数组的首地址,可以直接对它进行操作;
或用一个char指针:char *p(注意:"字符串指针"没有这个说法,可以叫做指向字符数组的指针)
p = s;或p = &s[0];用指针p指向s数组的首地址。
不知读取是指打印还是引用;假如要访用一个元素,可以用*(p + i),i指偏移量相当于p[i];也可以把p当成数组名用,比如p[2]指的是数组s的第三个元素,假如把‘a’赋给第n个元素:*(p+n-1) = 'a';或p[n-1] = 'a';
如果直接用指针存个字符串:前提是字符串大小不能超过30 - 1;scanf("%s",p);复制可以使用
strcpy(p,"..........")等;
如果不通过指向字符数组:那么必须要内存分配,用到malloc函数;
例如p = (char *)malloc(sizeof(char) *30);给指针p分配一个大小30字节的内存用来存储字符串;
接下来和上面差不多,不过p[30]必须是有结束符'\0';
数组名s可以看作数组的首地址,可以直接对它进行操作;
或用一个char指针:char *p(注意:"字符串指针"没有这个说法,可以叫做指向字符数组的指针)
p = s;或p = &s[0];用指针p指向s数组的首地址。
不知读取是指打印还是引用;假如要访用一个元素,可以用*(p + i),i指偏移量相当于p[i];也可以把p当成数组名用,比如p[2]指的是数组s的第三个元素,假如把‘a’赋给第n个元素:*(p+n-1) = 'a';或p[n-1] = 'a';
如果直接用指针存个字符串:前提是字符串大小不能超过30 - 1;scanf("%s",p);复制可以使用
strcpy(p,"..........")等;
如果不通过指向字符数组:那么必须要内存分配,用到malloc函数;
例如p = (char *)malloc(sizeof(char) *30);给指针p分配一个大小30字节的内存用来存储字符串;
接下来和上面差不多,不过p[30]必须是有结束符'\0';
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询