私はAnsi Cでこの問題を抱えています
3 以下を考慮して、デコードごとに 20 文字の文字列の配列を受け取る関数を作成します。左から右に読むと、数字はそこから投資する文字数を示します (投資する文字の間に数字を入れることができ、その意味で共通文字と見なされます)。
b. 数字文字は、文字列の最初の文字を反転したものに置き換える必要があります。
例。文字列 aj5pr2*dfkl3abc2qwe1azk は ajd*2rpfklcbawqeazk でなければなりません
表記法とポインター演算を使用する
#include <stdio.h>
#include <string.h>
#define TAM 20
char* invertNumerSubstrings(char*);
int main()
{
char chain[TAM];
printf("\n Ingrese chain: ");
gets(chain);
fflush(stdin);
char result;
result=invertNumerSubstrings(chain);
printf("\n Chain modified: ");
puts(chain);
printf("\n");
return 0;
}
char* invertNumerSubstrings(char* chain)
{
int flag =0;
char *pl= chain;
char *pe= chain;
char aux;
while(*pl=='\0'&& *pe=='\0');
{
if(!(*pl=='1')&&(*pe=='9'))
{
pl++;
pe++;
}
else
{
if(flag ==0)
{
pe=*pl;
flag=1;
pl--;
}
if(*pe<*pl)
{
aux=*pl;
*pl=*pe;
*pe=aux;
}
}
}
return *chain;
}
このプログラムにはコンパイル エラーはありませんが、動作しませんでした