最初はC言語の検証から
いろいろ悩んだ末に完成したのがこちら。
必要もないことを、古い言語で...
なんとなく18切符で旅をしているような、懐かしい気持ちになりました。
平たい版
#include <stdlib.h>
#include <stdio.h>
#include <string.h>
#include <stdbool.h>
int find(char *s, char c, int pos){ //文字列sからcを検索する 開始位置はpos
for (int i = pos;i < strlen(s);i++){if (s[i]==c)return i;}
return -1;
}
int count(char *s, char c){ //文字列sにあるcの数を返す
int r = 0;
for (int i = 0;i < strlen(s);i++){if (s[i]==c){r++;}}
return r;
}
void printf_get(char *s, int n){ //文字列sのスペース区切りの疑似配列のn番目の表示
int b = -1;
for (int i = 0;i <= n;i++){
int a = find(s, ' ', b + 1);
if (i == n){
for (int j = b + 1;j < a;j++){printf("%c",s[j]);}
return;
}
b = a;
}
return;
}
int main()
{
chars[100] = "123 456 789 1011 1213";
int leng = strlen(s);
s[leng] = ' '; //文字列の最後にスペースを追加
s[leng+1] = 0; //文字列の終端に必要
for (int i = count(s, ' ') - 1;i >= 0;i--){
printf_get(s, i);
if (i==0){
printf("\n");
}else{
printf(" ");
}
}
return0;
}