String is longer than expected in C

前端 未结 3 943
轮回少年
轮回少年 2020-12-12 02:48

Here\'s my code

#include 
#include 

int main(){
    char pal[8] = \"ciaooaic\";
    char pal1[7] = \"ciaoaic\";
    int lenPa         


        
3条回答
  •  渐次进展
    2020-12-12 03:20

    Both the above answers are sufficient to solve your doubts. Increase the the length of both pal and pal1 by one as there there is no space for the assignment of the null character( '\0') at the end. However there is small trick to print the non null terminated character using printf

    printf("strlen('%.*s'): %d\n",8, pal, lenPal);
    printf("strlen('%.*s'): %d\n",7, pal1, lenPal1);
    

    Link for the above trick:BRILLIANT

提交回复
热议问题