簡體   English   中英

在 C 中打印反轉字符串數組

[英]Print array of reversed strings in C

我希望這段代碼向后打印每個單詞,但不打印最后一個單詞,我想我在這里遺漏了一些非常基本的東西。

#include <stdio.h>
#include <stdlib.h>
#include <string.h>

int main()
{
    int l;
    printf("lenght: ");
    scanf("%i",&l);
    char str[l][100];
    int lenght[l];

    for(int i=0; i<l; i++)
    {
        printf("%i : ",i);
        scanf("%s",str[i]);
        lenght[i] = strlen(str[i]);
    }

    for(int i=l-1; i>0; i--)
    {
        for(int j=lenght[i-1]; j>=0; j--)
        {
            printf("%c",str[i][j]);
        }
        printf("\n");
    }



   return 0; 
}     

這是for(int i=l-1; i>0; i--) 。目前0索引字符串從未被處理。 將條件設置為i >= 0也包括0

內循環初始化也需要改為j = lenght[i] - 1

i > 0lenght[i - 1]導致問題。 還可以考慮使用putchar打印單個charsize_t來表示字符串的大小:

for (size_t i = l; i--;) {
  for (size_t j = lenght[i]; j--;) {
    putchar(str[i][j]);
  }
  putchar('\n');
}

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM