说我有:

....
char aLine;
char inputLine[1000];
scanf("%c", &aLine);
....


现在,我想将aLine转换为char数组,以便可以计算aLine中的字符数。我怎样才能做到这一点?

最佳答案

语句scanf("%c",...读取单个字符,因此实际上无需对其进行计数。如果要将单个字符“转换”为字符串(然后可以将其应用于例如strlen()),请将该字符写在特定位置。不要忘记使用\0(或0x0)终止字符串,以使诸如printf("%s"...strlen()之类的字符串函数正常工作:

char aLine;
char inputLine[1000];
scanf("%c", &aLine);
inputLine[0] = aLine;
inputLine[1] = '\0';

printf("inputLine: '%s' has length %d", inputLine, strlen(inputLine));


或只是一次读完整行:

char inputLine[1000];
if (fgets(inputLine,1000,stdin)) {
   printf("inputLine: '%s' has length %d", inputLine, strlen(inputLine));
}

09-25 15:12