我必须使用一个使用指针表法的函数来查找字符数组的长度,由于某种原因,我得到了23,但结果应该是5。
下面是我编写的代码:#include <iostream>
using namespace std;
int length(char *N)
{
int length = 0;
char* S = N;
for (; *S != ' '; S++);
for (; *N != *S; N++)
{
length++;
}
return length;
}
int main()
{
char A[5];
char *N;
N = A;
cout << "please enter the charecters you desire" << endl;
for (int i = 0; i <=4; i++)
{
cin >> A[i];
}
cout<<length(N);
}
你不需要两个循环。
请注意,您必须在数组中留下一个空格(最后一个元素)以' '
填充它。
因此,根据两个注释,如果您想使用除' '
以外的五个字符,您的代码将如下所示
#include <iostream>
size_t length(char *N){
size_t length = 0;
for (; *N != ' '; N++){
length++;
}
return length;
}
int main()
{
char A[6];
std::cout << "please enter the characters you desiren";
for (int i = 0; i < 5; i++){
std::cin >> A[i];
}
A[5] = ' ';
std::cout << length(A);
}