C++ 有没有办法用长度计数器功能解决这个问题?
我必须使用一个使用指针表示法的函数来计算字符数组的长度,出于某种原因,我得到23,但结果应该是5 以下是我构建的代码: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'填充它 因此,根据这两个
#包括
使用名称空间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::coutfor(;*S!='\0';S++);
如果用字符填充整个数组,将如何*S==0
?需要在末尾留出空格并显式终止字符串。cin>>A[i]当<代码> CIN <代码>连接到用户可以键入的终端时,不可能写“<代码>”0代码>代码。看起来您与C++字符串混淆了,它在结尾有一个空值,但这是字符数组,而不是字符串。