单词的字节返回的值比应该的少

时间:2018-02-14 19:05:50

标签: c++ strlen strcat

我的教授让我们制作我们自己的函数mystrcat,mystrlen和mystrcopy。我有一个问题,即该字返回错误的字节数。或者,相反,我认为是。

短语:"HELLO WORLD!",如果我没错,应该返回13个字节?喜欢在:

const char char_literal[] =
   { 'H', 'E', 'L', 'L', 'O', ' ', 'W', 'O', 'R', 'L', 'D', '!', '\0' };
  //  1    2    3    4    5    6    7    8    9    10   11   12   13 

我写了一个函数myStrLen(),它返回{ 'H', 'E', 'L', 'L', 'O', ' '})为6,但由于它是唯一的,最后应该有一个'\0'吗? /> 我应该返回i + 1还是6正确?

int myStrLen(char stringInput[]){
    for(int i = 0; ; i++){
        if(stringInput[i] == '\0'){
            return i;

1 个答案:

答案 0 :(得分:4)

如果您的教授告诉您编写一个与strlen完全相同的函数,那么它不会计算字符串终止字符:

  

std :: size_t strlen(const char * str);

     

返回给定字节字符串的长度,即数字   字符数组中的第一个元素所指向的字符   str而不包括第一个空字符。 ...

所以返回i是正确的,除了“原始”strlen采用const输入参数并返回size_t ...