【问题标题】:Insert an element in a specified position in a given array在给定数组的指定位置插入一个元素
【发布时间】:2018-04-02 13:30:19
【问题描述】:

如何在 C 中的特定位置插入值?

例如:

const char filenameC[] ="AndModel.c"; 
FILE * fileC=fopen(filenameC,"r"); 

int LineNumber=1; 
char line[200],search_string[]="similar";
if( fileC)
{

while ( fgets ( line, 200, fileC ) != NULL ) 
   {
        if(strstr(line,search_string))
        {
            fputs ( line, stdout );
            printf("%d", LineNumber);  
        }   
    LineNumber++; 
    }
}

FILE * fileW=fopen(filenameC,"w"); 
fseek(fileW, LineNumber,SEEK_SET); 
fputs("hello",fileW); 

printf("\n"); 

return 0;

【问题讨论】:

标签: c


【解决方案1】:

好的,这是你的解决方案:

        for (int i = number_of_elements -1; i >= desired_position; i--)
        {
            line[i + 1] = line[i];
        }

        line[desired_position] = value;

所以对于您的代码,如果我想将数组的一个元素插入到位置 3,并将该值设置为“d”,那么我会这样做:

if (fileC)
{
  while (fgets (line, 200, fileC) != NULL)
  {
    if (strstr (line, search_string))
      {
         for (int i = 200 - 1; i >= 3; i--)
         {
            line[i+1] = line[i];
         } 

         line[3] = 'd';

        printf ("%s", line);
        fputs (line, stdout);
        printf ("%d", LineNumber);
      }
      LineNumber++;
    }
}

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-12-28
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多