1

私の教授はすでにコードを開始しており、次のように見えます...

#include "stdafx.h"

int main(int argc, char* argv[])
{
    int numchar;

    char mystring[] = "This is the string to be printed  in reverse order";
    numchar = reverseString(mystring);

    puts("Reversed String is  ");
    puts(mystring);
}
int reverseString(char *mystring)
{

}

今、私はそれを終わらせることになっています、そしてそれは私が立ち往生しているところです. 文字列を逆にする無数のサンプルプログラムを調べましたが、それらはすべて異なる方法で行われており、教授がレイアウトしたコードの適切なコンテキストに「変換」する方法がわかりません。「int argc」がどうあるべきかについても混乱しています。しかし、逆の文字数を数えて返すことになると、このようなものを簡単に入れることができますfor(int length=0; str[length]!='\0';length++);が、それ以外は困惑しています。

4

1 に答える 1

1

関数reverseString()が何を返すのか心配な場合は、文字列全体を逆にします。したがって、文字列の長さが偶数の場合、関数はを返し、length長さが奇数の場合、関数はを返す必要があります。length-1

それ以外は、あなたの質問から、それは通常の文字列逆関数です。

int reverseString(char *string) 
{
   int length, c;
   char *begin, *end, temp;

   length = string_length(string);

   begin = string;
   end = string;

   end += length - 1;    
   while(begin<end){
      temp = *end;
      *end = *begin;
      *begin = temp;

      begin++;
      end--;
   }
   if(length % 2 == 0) return length;
   else return length-1;
}

int string_length(char *pointer)
{
   int c = 0;

   while( *(pointer+c) != '\0' )
      c++;

   return c;
}
于 2013-01-25T16:18:21.323 に答える