如何使用指针访问char *中的字符
How to access character inside char * using pointer
我有这样一个函数,它使用数组表示法打印出char *中的每个字符:
void printCharArray(char* c,int n)
{
for(int i=n-1;i>=0;i--)
cout << c[i]; // or *(c+i)
}
所以除了使用符号c[i]
或*(c+i)
之外,在这种情况下,我是否可以通过指针和它们的算术实现相同的结果?
可以:
for (char*p=c+n-1; n; n--)
cout << *p--;
顺便说一下,逐个字符输出的计数开销很大。cout.put(*p--);
将是一个更轻的选择
如果您需要为进一步处理保持参数不变,这里有一个替代:
for (char*p=c+n-1; p!=c-1; p--)
cout.put(*p);
当然,所有这些都假设n>=0。
相关文章:
- 为什么 Serial.println(<char[]>);返回随机字符?
- 如何在保持其值的同时将 c++ 无符号字符变量转换为 char 变量
- 需要帮助在 c++ 中将字符串转换为字符 ----错误 "const char *" 类型的值不能用于初始化 "char" 类型的实体
- 使用 char 分隔符解析C++中的字符串,但将可重复的字符保留为每个解析的子字符串 (C++ STL) 中的分隔符
- 使用动态分配将 char* 复制到另一个字符**
- 为什么strlen(s)与s的大小不同,为什么cout-char显示的是字符而不是数字
- 打印标准::<char>不带无关字符的矢量
- 为什么char不是单个字符
- C++ char 类查找字符索引
- 在大小为 10 的 char 数组中输入超过 10 个字符的字符串并输出时,它会显示整个数组而不是前 10 个数组.为什
- 常量数组如何在每个元素中只能包含字符,而 char* 数组能够指向每个元素中的字符串?
- 为什么在 c++ 中分配 char 数组元素时,分配的字符会被销毁?
- 当对字符变量使用toupper()时,所述char变量输出多个字符.我该如何防止这种情况发生
- 第 5 行:字符 54:错误:调用"min(int,std::__cxx11::basic_string<char>::size_type)"没有匹配函数
- 将char类型指定给int以打印相应的ASCII字符
- 将字符串文本分配给字符*:const_cast<字符 *> 与使用 char 数组
- 如何稳定地将字符*转换为TAO::String_Manager_T<char>
- 错误:AES 加密密钥:从"char*"到"无符号字符"的转换无效
- 如何将ANSI字符(char)转换为Unicode字符(wchar_t),反之亦然
- 如何从矢量中获取字符 *<char>?