簡體   English   中英

在我使用strcat函數時發現錯誤

[英]Finding the error in my use of the strcat function

請幫助我,我無法解決我上大學時遇到的這個問題。 我在我們的大學論壇上問,他們說了這條線索:“如果將長字符串發送給strcat或發送字符串B,有什么區別?”

解釋下一個程序出了什么問題:

#include <string.h>
#include <stdio.h>
int main()
{
    char A[10];
    char B[20];
    strcpy(A, "A student");
    strcpy(B, "fail the exam");
    printf("%s\n", strcat(A, B));
    return 0;
}

strcat的第一個參數必須足夠大以包含連接的結果字符串。 因此將其更改為:

char A[30];

否則您可能會遇到細分錯誤。

看到“學生考試不及格” 大於10

因此,至少要使用char A[24]而不是char A[10]

由於strcat(s,t)將t連接 s 的末尾 ,因此s必須足夠大以容納新的連接字符串。 它返回一個指向s中第一個字符的指針。

數組A應該足夠大以容納數組B的內容,否則strcat行為不可預測 ,可能會發生分段錯誤,應用程序可能會崩潰。請參閱下面的鏈接。 [鏈接] http://linux.die.net/man/3/strcat

暫無
暫無

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

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