同調実験室 - ARGIUS.net

TOP PAGE INDEX Number / 0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18

06:文字列(3) 文字列長 複製 反転

機能

  1. 標準入力から文字列を取得
  2. 取得した文字列の文字列長を取得
  3. 取得した文字列を別の変数に複製
  4. 文字列を反転して表示

実行結果

$ ./test
string
文字列の長さ = 6
複製した文字列= string
反転した文字列= gnirts

$

ソース

C

#include <stdio.h>
#include <string.h>

int main()
{
  int  len, i;
  char a[32] = "";
  char b[32] = "";
  
  /* 02を参照:gets()は推奨されない */
  gets(a);
  
  len = strlen(a); /* 文字列長の取得 */
  strcpy(b, a);    /* 文字列のコピー */
  
  printf("文字列の長さ   = %d\n", len);
  printf("複製した文字列 = %s\n", b);
  printf("反転した文字列 = ");
  
  /* 文字列の反転 */
  for (i = len-1; i >= 0; i--) {
    printf("%c", a[i]);
  }
  
  printf("\n");
  
  return 0;
}

C++

#include <iostream>
#include <string>

int main()
{
  int len, i;
  std::string a, b;
  
  std::cin >> a;
  
  len = a.length(); /* 文字列長の取得 */
  b = a;            /* 文字列のコピー */
  
  std::cout << "文字列の長さ   = " << len << std::endl;
  std::cout << "複製した文字列 = " << b   << std::endl;
  std::cout << "反転した文字列 = ";
  
  /* 文字列の反転 */
  for (i = len-1; i>=0; i--) {
    std::cout << a.at(i);
  }
  
  // こういう手もある
/*
  for (std::string::reverse_iterator it = a.rbegin(); it != a.rend(); ++it) {
    std::cout << *it;
  }
*/
  
  std::cout << std::endl;
  
  return 0;
}

Java

import java.io.*;

class Main {
    
    public static void main(String[] args) {
        
        try {
            
            int len;
            String a;
            StringBuffer b;
            BufferedReader in = new BufferedReader(new InputStreamReader(System.in));
            
            a = in.readLine();
            
            len = a.length();        /* 文字列長の取得 */
            b = new StringBuffer(a); /* 文字列のコピー */
            
            System.out.println("文字列の長さ   = " + len);
            System.out.println("複製した文字列 = " + b);
            System.out.print  ("反転した文字列 = ");
            
            /* 文字列の反転 */
            System.out.println(b.reverse());
            
        } catch (IOException e) {
            e.printStackTrace();
        }
        
    }
    
}

Perl

my $len;
my $i;

my $a = "";
my $b = "";

chomp($a = <STDIN>);

$len = length($a);  # 文字列長の取得
$b = $a;            # 文字列のコピー

printf"文字列の長さ   = %d\n", $len;
printf"複製した文字列 = %s\n", $b;
print "反転した文字列 = ";

# 文字列の反転
for ($i = $len-1; $i>=0; $i--) {
    print substr $b, $i, 1;
}

print"\n";

Ruby

a = gets.chomp

len = a.length  # 文字列長の取得
b = a           # 文字列のコピー

puts '文字列の長さ   = ' + len.to_s
puts '複製した文字列 = ' + b
puts '反転した文字列 = ' + b.reverse # 文字列の反転

最終更新日 : 2004.08.23

TOP PAGEINDEX Number / 0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18