c - 我如何将确定数量的字符与另一个字符串连接起来?

标签 c string

我是编程新手,我正在尝试制作一个可以将确定数量的字符连接到另一个字符串的函数。它正在正确计算字符数,但不会像任务所希望的那样显示。 谁能告诉我为什么?

一个例子是(预期输出):

字符串 1:测试

字符串 2:字符串

N: 4(为用户询问值)

结果:TestingStri

到目前为止我的代码是这样的:

#include <stdio.h>
#include <stdlib.h> 
#include <string.h>
void ConcatenateString(char *string, char *string2); 
int main() 
{ 

   char string[100]; 
   char string2[100]; 

   ConcatenateString(string, string2);
   DisplayStrings(string, string2); 

} 
void ConcatenateString(char *string, char *string2)
{
    int N;
    system("cls");
    printf ("First string: ");
    gets(string);
    fflush(stdin);
    printf ("Second string: ");
    gets(string2);
    printf("Number of characters: ");
    scanf ("%d", &N);

    int i;
    int count = 0;
    for(i=0;string2[i];i++)
    {
        count++;
    }

    while (count < N)
    {
        string2[count++] = string2[i];
    }   
    strcat(string,string2); 
}
void DisplayStrings(char *string, char *string2)
{
    printf("\nFirst String:\n");
    printf("%s\n", string);
    printf("\nSecond String:\n");
    printf("%s\n", string2);

}

错误的(实际)输出:

String 1: Testing
String 2: String
N: 4
Output: TestingString

它并没有真正显示我要求的字符串 2(例如)中的 4 个字符。

最佳答案

for(i=0;string2[i];i++)
{
    count++;
}

此代码计算 string2 中的字节数。我认为您需要在此处使用 string


while (count < N)
{
    string2[count++] = string2[i];
}   

此代码将 string2 中的内容从一个地方复制到另一个地方。我认为您想从 string2 复制到 string


strcat(string,string2); 

此代码连接stringstring2。你绝对不需要这个;它只会在您显示结果时让您感到困惑。

关于c - 我如何将确定数量的字符与另一个字符串连接起来?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/51350691/

相关文章:

c# - 为什么 C# 的 LastIndexOf 会这样?

Java 将字符串(日/月/年)格式转换为日期

C:指针算术 - 它是如何工作的?

c - 内存重新分配期间缓冲区溢出

c - 如何修复警告 : '&&' within '||'

java - GNUmakefile无法编译bison和flex程序

用于打印文件中的行数和列数的代码。为什么它在 Windows Mingw gcc 环境下工作,但在 Linux 上却不行?

从 C 中的文本文件复制所需的字符串

c# - 正则表达式:替换内部字符串

php - 如何识别数据库列中的换行符