-3
#include "stdafx.h"
#include<string.h>
#include<stdio.h>


int _tmain(int argc, _TCHAR* argv[])
{

    char abc[28] ;
    //abc[26] = '\0';
    abc[0]=65;
    char hj = abc[0];
    for(int i=0; i<26; i++)
    {
    abc[i]=++hj;

    printf("%d\n",i);

    }
    int l=strlen(abc);
    abc[l]='\0';
    printf("length of abc_array is %d\n",(strlen(abc)));
    for(int i=0; i<strlen(abc); i++)
    {
    printf("%c",abc[i]);
    printf("\n");
    }

}

字符串的输出长度是39,这是错误的。错误是什么?

4

2 回答 2

1

您需要abc[i] = '\0'在调用之前进行设置strlen

于 2013-09-27T20:14:48.973 回答
0

标准strlen函数只适用于字符串。字符串是由零字符终止的字符序列。传递不是字符串的东西会strlen导致未定义的行为。

strlen在代码中传递的不是字符串。这就是为什么您从strlen.

于 2013-09-27T20:27:19.673 回答