パーソナルブログメモリ

a = [1, 1]
for _ in "*" * 999: a += [sum(a[-2:])]
print(a)

C言語の旅(文字列をsplitして配列に入れ、それを逆から表示するような事をする)

2021-11-04 | 速攻で言語マスターしてみませんか

最初は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;
}

最新の画像もっと見る

コメントを投稿

ブログ作成者から承認されるまでコメントは反映されません。