-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

0

標準strlen関数は文字列にのみ適用されます。文字列は、ゼロ文字で終了する一連の文字です。文字列ではないものを に渡すとstrlen、未定義の動作が発生します。

strlenコードで渡すものは文字列ではありません。これが、 から無意味な結果が得られる理由ですstrlen

于 2013-09-27T20:27:19.673 に答える