如何计算 C++ 中 C_String 中的字符数?
How to count characters in a C_String in C++?
我是一名计算机专业的新生,我有一道作业题如下:
Write a Function that passes in a C-String and using a pointer determine the number of chars in the string.
这是我的代码:
#include <iostream>
#include <string.h>
using namespace std;
const int SIZE = 40;
int function(const char* , int, int);
int main()
{
char thing[SIZE];
int chars = 0;
cout << "enter string. max " << SIZE - 1 << " characters" << endl;
cin.getline(thing, SIZE);
int y = function(thing, chars, SIZE);
cout << y;
}
int function(const char *ptr, int a, int b){
a = 0;
for (int i = 0; i < b; i++){
while (*ptr != '[=11=]'){
a++;
}
}
return a;
}
首先欢迎来到Whosebug ye0123!我认为您正在尝试在此处重写 strlen()
函数。尝试给以下 link 看一下 Find the size of a string pointed by a pointer。
简短的回答是您可以使用 strlen()
函数来查找字符串的长度。您的函数代码将如下所示:
int function(const char *ptr)
{
size_t length = strlen(ptr);
return length;
}
你应该也只需要这个函数和main.
编辑:也许我误解了你的问题,毕竟你应该重新发明 strlen()
。在这种情况下,您可以这样做:
unsigned int my_strlen(const char *p)
{
unsigned int count = 0;
while(*p != '[=11=]')
{
count++;
p++;
}
return count;
}
我在这里比较 *p
和 '[=16=]'
因为 '[=16=]'
是空终止字符。
这取自https://overiq.com/c-programming-101/the-strlen-function-in-c/
我是一名计算机专业的新生,我有一道作业题如下:
Write a Function that passes in a C-String and using a pointer determine the number of chars in the string.
这是我的代码:
#include <iostream>
#include <string.h>
using namespace std;
const int SIZE = 40;
int function(const char* , int, int);
int main()
{
char thing[SIZE];
int chars = 0;
cout << "enter string. max " << SIZE - 1 << " characters" << endl;
cin.getline(thing, SIZE);
int y = function(thing, chars, SIZE);
cout << y;
}
int function(const char *ptr, int a, int b){
a = 0;
for (int i = 0; i < b; i++){
while (*ptr != '[=11=]'){
a++;
}
}
return a;
}
首先欢迎来到Whosebug ye0123!我认为您正在尝试在此处重写 strlen()
函数。尝试给以下 link 看一下 Find the size of a string pointed by a pointer。
简短的回答是您可以使用 strlen()
函数来查找字符串的长度。您的函数代码将如下所示:
int function(const char *ptr)
{
size_t length = strlen(ptr);
return length;
}
你应该也只需要这个函数和main.
编辑:也许我误解了你的问题,毕竟你应该重新发明 strlen()
。在这种情况下,您可以这样做:
unsigned int my_strlen(const char *p)
{
unsigned int count = 0;
while(*p != '[=11=]')
{
count++;
p++;
}
return count;
}
我在这里比较 *p
和 '[=16=]'
因为 '[=16=]'
是空终止字符。
这取自https://overiq.com/c-programming-101/the-strlen-function-in-c/