作者jojojen (JJJ)
看板C_and_CPP
标题[问题] 请教以双重指标阵列存取特定字元用法(已解决)
时间Sun Jun 17 21:36:44 2018
开发平台(Platform): (Ex: Win10, Linux, ...)
Mac
编译器(Ex: GCC, clang, VC++...)+目标环境(跟开发平台不同的话需列出)
Xcode
额外使用到的函数库(Library Used): (Ex: OpenGL, ...)
无
问题(Question):
分别用两个指标指向两个字串後,再用一个双重指标阵列储存两个指标
请问如何以该双重指标阵列,存取字串中的特定字元?
程式码(Code):(请善用置底文网页, 记得排版,禁止使用图档)
int main(int argc, const char * argv[]) {
char str1[] = "123";
char str2[] = "456";
char *ptr1 = str1;
char *ptr2 = str2;
char **pptr[2];
pptr[0] = ptr1;
pptr[1] = ptr2;
printf("%s\n", ptr2); // 456
printf("%s\n", pptr[1]); // 456
printf("%c\n", ptr2[1]); // 5
printf("%c\n", (pptr[1])[1]); // 空白 ,预期应该跟上行程式结果相同
}
补充说明(Supplement):
指标阵列跟双重指标的意思都懂,但两个合在一起使用就不太行了
想请问以上述的双重指标阵列pptr该如何表示才能正确输出字元'5'
麻烦各位大大了
--
※ 发信站: 批踢踢实业坊(ptt.cc), 来自: 111.83.146.68
※ 文章网址: https://webptt.com/cn.aspx?n=bbs/C_and_CPP/M.1529242606.A.B99.html
1F:→ Feis: 你要的是 char *pptr[2]; 吗? 06/17 21:56
这个做法试了可以 不过主要还是想弄懂如果用的写法双重指标要怎做
2F:→ threesmaller: 先casting 06/17 21:57
好 我查查看
※ 编辑: jojojen (111.83.146.68), 06/17/2018 22:01:03
3F:→ Feis: 那你要先想想为什麽要用双重指标. 06/17 22:02
4F:→ Feis: char *pptr[2]; 再加个 char **ppptr = pptr; 应该是你要的 06/17 22:04
喔喔 试了没错 谢谢大大
本来双重指标阵列是想用来存拆分後的字串像下面这样
char buf[MAXSIZE];
char *pbuf = buf;
char **ops[MAXSIZE];
char *del = " ";
split(ops, pbuf, del);
不过刚刚经提醒发现 好像其实不需要.... 我的写法太冗了 我再修改 谢谢大大
※ 编辑: jojojen (111.83.146.68), 06/17/2018 22:12:03
※ 编辑: jojojen (111.83.146.68), 06/17/2018 22:14:07