如何仅使用指针打印char数组? (我们不知道阵列的大小)

时间:2014-08-01 15:55:20

标签: c++ arrays pointers

我有一个带有三个参数的函数:一个指向字符数组的指针(也称为C-String),以及两个指向特定字符的指针(我们假设它们指向C-String中的字符)。 / p>

void stringPointerOperation(char* str, char* firstPtr, char* secondPtr)
{

 cout << str << endl;
 cout << "First character=" << *firstPtr << endl;
 cout << "Second character =" << *secondPtr << endl;

 }

问题:

  1. 如何从firstPtr打印出字符到str的结尾?
  2. 如何找出firstPtr和secondPtr之间有多少个字符?

1 个答案:

答案 0 :(得分:2)

回答问题1:

如果char的数组格式正确,则应该以空值终止(即最后一个字符应为\0)。只需打印字符,直到达到目的为止:

while(*firstPtr != '\0') {
    cout << *firstPtr << endl;
    *firstPtr++;
}

回答问题2:

如果你确定它们是指向同一个字符数组的指针,那么简单地减去它们应该起作用:

int charsBetween = secondPtr - firstPtr;