Lỗi kí tự lạ ở cuối chuỗi trong code Rot13 C

Hi mọi người,
E đang làm bài tập trong trường về C, khi code xong, chạy test case thì nó fail hết 3/5 :frowning:. Mng xem giúp em với ạ . Em cảm ơn mng nhiều

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

void rot13(char *text);


int main(int argc, char**argv) {
  
  
  
    rot13(argv[1]);
    printf("%s", argv[1]);
    
    return 0;
}

void rot13(char* text) {
    char convertedText [50];
    for (int i = 0; i < strlen(text); i++)
    {
        if (isupper(text[i]))
        {
            convertedText[i] = (text[i] - 'A' +13) % 26 + 'A';
        } else if (islower(text[i])){
             convertedText[i] = (text[i] - 'a' + 13) %26 + 'a';
        }
        else {
            convertedText[i] = text[i];
        }
    }
   strcpy(text, convertedText);
}

!

1 Like

Bạn biết chuỗi trong C kết thúc bằng gì không?

kết thúc bằng Null đk ạ??

à rồi, cảm ơn bác nhé. E fix được rồi, lỗi cơ bản vậy cũng để sai. Gà quá :)))

1 Like
83% thành viên diễn đàn không hỏi bài tập, còn bạn thì sao?