将指针分配给字符串对象的第一个也是最后一个索引
Assigning Pointers to the first and last indexes of an String Object
我正在尝试编写一个函数,该功能将用户提交字符串并创建两个指针;一个指向字符串的第一个索引,一个指向字符串的最后一个索引。当我尝试将指针设置为等于特定索引firstPointer = userString[0];
secondPointer = userString[userString.length() - 1];
时,我会遇到错误。我收到的错误出现在=
操作员上,并说"类型CHAR的值不能分配给类型CHAR的实体"。
我已经阅读了stackoverflow上的其他几篇文章,我认为他们没有解决同一问题,或者是合理的,我不明白他们的建议。我是C 的新手,对指针的新手是新手。当我意识到指针的分配是错误的时,您可以忽略我只是设置该循环。请在下面找到功能代码:
功能
void ReverseString(string &userString)
{
char *firstPointer;
char *secondPointer;
firstPointer = new char;
secondPointer = new char;
firstPointer = userString[0];
secondPointer = userString[userString.length() - 1];
//Iterate over entire string
for (int loopCounter = 0; loopCounter < userString.length()/2; loopCounter++)
{
}
}
我收到的错误出现在
=
操作员上,并说
"类型char的值不能分配给类型char的实体"。
我不相信你。我准备打赌它实际上说的很大一笔:
"类型char的值不能分配给类型char *的实体"
trailling *至关重要。firstPointer
不是char
,它是"指向char
"的指针,或者正如我们在此处倾向于说的" char*
"。
userString[0]
是是 a char
(或更确切地说,是对 char
的引用)。它是索引0的字符串中字符的引用。如果您想要指向该char
的指针,则需要进行地址。所以&userString[0]
。因此您的代码可能是:
firstPointer = &userString[0];
secondPointer = &userString[userString.length() - 1];
或者,获得第一个和最后一个元素是如此普遍,以至于有特定的功能,因此您可以写下:
firstPointer = &userString.front();
secondPointer = &userString.back();
最后,的所有实际上取决于是第一个和最后一个字符 - 因此您应该真正以:
开始 if (userString.empty()) return;
确保有。
尝试以下:
void ReverseString(string &userString)
{
char *firstPointer;
char *secondPointer;
firstPointer = &userString[0];
secondPointer = &userString[userString.length() - 1];
.....
}
您的问题是您的用户引用不是指针。指针就像实际对象的地址一样。因此,这样做:firstPointer = userString[0];
就像当某人要求您的地址时给您房子。但是您可以使用&
操作员来获得"地址",例如firstPointer = &userString[0];
。
在这种情况下,您也不需要使用new
。如果您想指出直到那一点不存在的东西,您会写出类似firstPointer = new char;
的东西,有效地创建了一个新的char
并指向它。但是,由于userString
已经存在,因此无需创建一个新的。
- 获取向量C++中第一个值和最后一个值的和
- 查找数组中第一个最小值和最后一个最大值元素之间的算术平均值
- 在类的第一个/最后一个实例存在之前/之后调用一对函数.有没有更好的方法?
- 查询事件日志.如何查询才能单独获取第一个和最后一个事件?
- 我必须更改我的数字最后一个数字和第一个数字,但不要使用仅带有整数或循环的函数.例如从 12345 到 52341
- 如何打印第一个和最后一个元素的和,然后打印第二个和倒数第二个元素的总和,依此类推
- 使用 STL 交换堆栈 C++ 中的第一个和最后一个元素
- 使用数组将最后一个最大值更改为第一个最小值
- "如何使用C++将字符串的第一个和最后一个索引返回到向量中?
- 查找数组的第一个和最后一个索引,其中 from 和 to 元素的顺序总和最大
- 数组:如何在指定索引之前显示数组的第一个和最后一个元素以及数组元素的差异?
- 输入文件中的第一个字符是输出文件中的最后一个字符,反之亦然
- 在向量C++中查找特定的第一个和最后一个索引<float>
- 如何使用第一个、中间和最后一个元素的中位数正确分区?
- 计算第一个和最后一个元素绝对差值较小的子序列 <= K
- COUT:最后一个字符串覆盖第一个字符串
- 获取第 n 项与 std::set 中第一个/最后一个的偏移量
- 如何使用递归返回单链表中的第n个最后一个元素
- 当第一个<=最后一个不满足时,C++标准对算法有什么看法?
- c++函数——哪个日期是第一个/最后一个