Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/c/63.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C编程-字符移动问题_C_For Loop_Char_Move - Fatal编程技术网

C编程-字符移动问题

C编程-字符移动问题,c,for-loop,char,move,C,For Loop,Char,Move,嘿,各位,有人能给我指一下这里的正确方向吗。。我正试图把一些角色转移到任意方向。我是C语言的新手,很难想象这里需要发生什么 这是我函数的结构,将在我的main中调用 如果文件是 ABCDEX ABCDEX ABCDEX ABCDEX 我需要像这样把X字符移过去, XABCDE XABCDE XABCDE XABCDE很难理解你的函数需要做什么 你必须把X移到左边吗?从数组的末尾开始,在n和n-1元素之间更改值。一个接一个..这是我理解您想要为每个字符串执行的操作 void shiftChar(c

嘿,各位,有人能给我指一下这里的正确方向吗。。我正试图把一些角色转移到任意方向。我是C语言的新手,很难想象这里需要发生什么

这是我函数的结构,将在我的main中调用

如果文件是 ABCDEX ABCDEX ABCDEX ABCDEX 我需要像这样把X字符移过去, XABCDE XABCDE XABCDE
XABCDE

很难理解你的函数需要做什么


你必须把X移到左边吗?从数组的末尾开始,在n和n-1元素之间更改值。一个接一个..

这是我理解您想要为每个字符串执行的操作

void shiftChar(char** text, int length, int height){

 int i, j;
   for ( i = 0; i< height ; i++ ) { 
    for (j = 0; j<length; j++){
      if(text[i][j] == 'X'){
     ;
      }
    }
  }           

}
static inline void swap(char *x, char *y){
    char tmp = *x;
    *x = *y;
    *y = tmp;
}

void shiftChar(char** text, int length, int height){
    int i, j;
    for(i = 0; i< height ; i++ ) { 
        for(j = 0; j<length; j++){
            if(text[i][j] == 'X'){
                int k;
                for(k = j;k != 0; --k){//k != 0 && text[i][k-1]!='X' If the 'X' there is more than one
                    swap(&text[i][k-1], &text[i][k]);
                }
            }
        }
    }
}

仅用于..循环代码?我正在尝试移动文件中的一些字符,文件相关的东西在哪里?谁叫shiftChar?。用适当的细节提问。这是一个算法问题,你应该自己想出解决方案。提示:使用插入排序技术。文件中的所有内容都有固定模式吗?或者,您是在尝试将出现的每个单词中的给定字符向左或向右移动一个位置?谢谢,我将研究插入排序。我试图在文件中筛选一个字符的内容,将它们移到行的左边,在这种情况下,从上面的“length”开始。寻找像这样的算法,在伪代码中强调while。
#include <stdio.h>
#include <string.h>

int main(void)
{
    char str[] = "ABCDX";
    char tmp;

    /* C99 for loop */
    for(int i = strlen(str) - 2; i >= 0; i--)
    {
        tmp = str[i];
        str[i] = str[i + 1];
        str[i + 1] = tmp;
    }

    printf("%s\n", str);
    return 0;
}