#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,这是错误的。错误是什么?
答案 0 :(得分:1)
在致电abc[i] = '\0'
之前,您需要设置strlen
。
答案 1 :(得分:0)
标准strlen
功能仅适用于字符串。字符串是以零字符结尾的字符序列。将不是字符串的内容传递给strlen
会导致未定义的行为。
您在代码中传递给strlen
的内容不是字符串。这就是为什么你从strlen
得到无意义的结果。