C++ 有没有办法用长度计数器功能解决这个问题?

C++ 有没有办法用长度计数器功能解决这个问题?,c++,C++,我必须使用一个使用指针表示法的函数来计算字符数组的长度,出于某种原因,我得到23,但结果应该是5 以下是我构建的代码: #包括 使用名称空间std; 整数长度(字符*N) { 整数长度=0; char*S=N; 对于(;*S!='\0';S++); 对于(;*N!=*S;N++) { 长度++; } 返回长度; } int main() { chara[5]; 字符*N; N=A; cout您不需要两个循环 请注意,您必须在数组中留下一个空格(最后一个元素)以通过'\0'填充它 因此,根据这两个

我必须使用一个使用指针表示法的函数来计算字符数组的长度,出于某种原因,我得到23,但结果应该是5

以下是我构建的代码:

#包括
使用名称空间std;
整数长度(字符*N)
{
整数长度=0;
char*S=N;
对于(;*S!='\0';S++);
对于(;*N!=*S;N++)
{
长度++;
}
返回长度;
}
int main()
{
chara[5];
字符*N;
N=A;

cout您不需要两个循环

请注意,您必须在数组中留下一个空格(最后一个元素)以通过
'\0'
填充它

因此,根据这两个注释,如果要使用五个字符(不包括
'\0'
),代码如下

#include <iostream>
size_t length(char *N){
    size_t length = 0;
    for (; *N != '\0'; N++){
        length++;
    }
    return length;
}
int main()
{
    char A[6];
    std::cout << "please enter the characters you desire\n";
    for (int i = 0; i < 5; i++){
        std::cin >> A[i];
    }
    A[5] = '\0';
    std::cout << length(A);
}
#包括
大小\u t长度(字符*N){
尺寸长度=0;
对于(;*N!='\0';N++){
长度++;
}
返回长度;
}
int main()
{
chara[6];
标准::cout>A[i];
}
A[5]='\0';

std::cout
for(;*S!='\0';S++);
如果用字符填充整个数组,将如何
*S==0
?需要在末尾留出空格并显式终止字符串。
cin>>A[i]当<代码> CIN <代码>连接到用户可以键入的终端时,不可能写“<代码>”0代码>代码。看起来您与C++字符串混淆了,它在结尾有一个空值,但这是字符数组,而不是字符串。