我正在用 c 學習字串,我正在做我的作業,要求我撰寫一個程式來在某些情況下替換部分字串。這是我的源代碼(未完成):
#include <stdio.h>
#include <string.h>
int main()
{
char str1[128], str2[128], str3[128];
for (int i = 0; i < 128; i ) //initialize str
{
str1[i] = 0;
str2[i] = 0;
str3[i] = 0;
}
printf("Input the first string:"); //inputs
fgets(str1, 128, stdin);
printf("Input the second string:");
fgets(str2, 128, stdin);
printf("Input the third string:");
fgets(str3, 128, stdin);
if (strncmp(str1, str2, strlen(str2) - 1) == 0) //if the first n charters match (n=length of str2)
{
printf("%s", str3); //print str3
int RemainingChar = 0;
RemainingChar = strlen(str1) - strlen(str2);
for (int i = 0; i < RemainingChar; i )
{
printf("%c", str1[i strlen(str2) - 1]); //print the remaining part
}
}
return 0;
}
這是它的運行方式:
Input the first string:asdfghjkl
Input the second string:asd
Input the third string:qwe
qwe
fghjkl
有一個意外的換行符。我該怎么做才能使其輸出如下:qwefghjkl?
uj5u.com熱心網友回復:
該函式fgets還將行'\n'尾的換行符存盤到字串中。如果您不想列印此換行符,則必須在列印字串之前將其洗掉。
有關洗掉換行符的幾種方法,請參閱以下問題:
從 fgets() 輸入中洗掉尾隨換行符
轉載請註明出處,本文鏈接:https://www.uj5u.com/shujuku/357592.html
