當前位置:編程學習大全網 - 編程軟體 - 為什麽我令j=strlen(c)時就沒有輸出,令j=strlen(c)-1是就有輸出呢,j=strlen-1不是字符數減壹了嗎?

為什麽我令j=strlen(c)時就沒有輸出,令j=strlen(c)-1是就有輸出呢,j=strlen-1不是字符數減壹了嗎?

這個涉及到幾個問題,妳首先要知道c語言中數組的最低下標是0,也就是數組中有5個元素下標分別是0~4

第二個問題是c風格字符串,就是妳用scanf輸入進去的,c風格字符串標誌字符串結尾的是壹個全0的字符,就是二進制位全0的壹個字符,如果用c語言編程可以寫作'\0',註意和'0'區別

這樣問題就好解決了,妳的程序似乎是將字符串頭尾顛倒,也就是0和4的位置顛倒,1和3的位置顛倒對吧,但是j=strlen()的話,取出的j是字符串的長度,例如是5,但是字符串的最大下標是4,如果不-1的話就會出錯,就會將第二個問題所說的c風格字符串結尾覆蓋導致問題,具體問題是把c風格字符串的結尾全0字符交換到了下標為0的位置,也就說這個字符串變成空的了(因為結束標誌到了最開始,也就是最開始就結束了,不就相當於字符串空了嗎)

  • 上一篇:北京開陽裏小區周邊配套怎麽樣?
  • 下一篇:電子版禮物有什麽
  • copyright 2024編程學習大全網