如何增加指向字符数组的指针的位置
How to incress position of a pointer that is pointing to a char array?
我有以下功能:
void mon_strlen(char *s){
printf("Contenue: %cn",*s);
s++; //here
printf("Contenue: %cn",*s);
system("PAUSE");
}
int main()
{
char str[10]="Hello";
char *s;
s=str[0];
mon_strlen(&s);
system("PAUSE");
return 0;
}
如何在函数mon_strlen
中增加指针s
的内存位置以打印:
Contenue: H
Contenue: e
还是我的逻辑错了?
在代码中,更改
s=str[0];
至
s=str;
或
s=&str[0];
并调用mon_strlen()
作为
mon_strlen(s);
要使main()
中的更改可用,您需要将一个指针传递给类似的指针
void mon_strlen(char **s) {
char *ptr;
if (s == NULL)
return;
ptr = *s;
if (ptr == NULL)
return;
printf("Contenue: %cn", *ptr);
ptr = (*s)++; //here
printf("Contenue: %cn", *ptr);
system("PAUSE");
}
你在main()
中的调用就好像你的mon_strlen()
函数有这个签名
void mon_strlen(char **s)
如果启用警告,编译器会警告您。
在main()
中,你需要像这个一样通过str
mon_strlen(&str);
相关文章:
- 指向指向字符数组的指针数组的指针
- 比较字符数组
- 如何使用Crypto++并为RSA返回可打印的字节/字符数组
- 使用无符号字符数组有效存储内存
- 按字符值访问int数组
- 错误:字符数组的初始值设定项太多
- 对字符数组中的元素执行逐位操作
- C++,在int数组中输入字符串或字符会输出0,而不是ascii或error
- C++ 无法在字符数组中使用 for 循环打印字母模式
- 如何在 C++ 中从文件中读取字符数组(带有一些空格)
- 移动二维数组中的字符
- C++ 传递二维字符数组
- 无法在 C++ 中输入字符数组
- C++ 带结构的数组字符
- 数组字符包含量超出预期
- 读取文件并添加到数组字符
- 如何在Qt中更改或替换数组字符
- 为什么编译器不在参数中传递数组字符 *arr[] 的大小?
- 井字棋数组字符错误
- 分割数组字符