はてなキーワード: charとは
一気に並べてみる
int i; int space; for (int i = 0; i < 8; i++) { for (space = 0; space < i; space++) { printf(" "); } printf("Hello world\n"); }
すまん <は半角の<に置き換えてくれ(w)
int i; int space; char buffer[8]; char buffer2[8]; memset(buffer, 0, 8); memset(buffer2, 0, 8); for (int i = 0; i < 8; i++) { memset(buffer, 0x20, i); printf("%sHello world\n",buffer); }
int i; int space; char buffer[8]; char buffer2[8]; memset(buffer, 0, 8); memset(buffer2, 0, 8); for (int i = 0; i < 8; i++) { buffer[i] = 0x20; printf("%sHello world\n",buffer); }
この場合は特に影響はないが一般的にはmemsetを使う使わないは大きな影響になるので
std::string space; for (int i = 0; i < 8; i++) { printf("%sHello world\n", space.c_str()); space += " "; }
std::string space_org; for (int i = 0; i < 8; i++) { std::string space = space_org + " "; printf("%sHello world\n", space.c_str()); space_org = space; }
ざつにかんがえても 書き方いろいろ
つまり まぁ どれがいいというよりは
状況に応じてかき分けていく必要がある
学校の授業などだと
アルゴリズムの話で
ヒープソート マージソート クイックソートの比較みたいな話があるけど
そこまで難しい話にいかなくても
書き方がたくさんある
技としてはナイスだけど応用は厳しいよね
const char *message = " Hello world\n"; for (int i = 0; i < 8; i++) { printf("%s", message + 8 - i); }
サンプルとしては、使いにくい書き方
結構遊べる
あなたは どんな 書き方が好き?
ゼロページ
struct alignas(1) sample{ char buffer[8]; char buffer2[8]; }; sample sample; int i; int space; memset(sample.buffer, 0, 8); memset(sample.buffer2, 0, 8); for (int i = 0; i < 8; i++) { sample.buffer[i] = 0x20; printf("%sHello world\n", sample.buffer); }
3つともおなじ
int i; int space; for (int i = 0; i < 8; i++) { for (space = 0; space < i; space++) { printf(" "); } printf("Hello world\n"); }
すまん <は半角の<に置き換えてくれ(w)
int i; int space; char buffer[8]; char buffer2[8]; memset(buffer, 0, 8); memset(buffer2, 0, 8); for (int i = 0; i < 8; i++) { memset(buffer, 0x20, i); printf("%sHello world\n",buffer); }
int i; int space; char buffer[8]; char buffer2[8]; memset(buffer, 0, 8); memset(buffer2, 0, 8); for (int i = 0; i < 8; i++) { buffer[i] = 0x20; printf("%sHello world\n",buffer); }
書き直すごとにアルゴリズムがちょっとづつ良くなったり悪くなったり
どれがすき?
int i; int space; char buffer[8]; char buffer2[8]; memset(buffer, 0, 8); memset(buffer2, 0, 8); for (int i = 0; i < 8; i++) { memset(buffer, 0x20, i); printf("%sHello world\n",buffer); }
https://english.stackexchange.com/questions/60154/how-to-pronounce-the-programmers-abbreviation-char
↑
改めてググってきたけどやっぱり英語圏では「チャー」がほとんど。
最低でも "chara" と a の母音がない char を英単語として「キャラ」と読む場合はかなり違和感ある。
PlayStation JapanのYouTube動画「『 ゴッド・オブ・ウォー』 究極のアクションアドベンチャーの創造3 アトレウスができあがるまで」
https://youtu.be/vxUbSuKRs5c?t=1m4s
の1:04あたりでは
const char* stance const dc::tAIStance if (!pStance || return luaL_error(L, "Stance %s RequestQueue* pActiveRequest = L AISwitchStanceRequest* request = pAc request->SetStance(pAI, pStance); return 0;
というコードの断片が映る.(ただ,上から分かる通り,ほとんどの行は途中までしか映っていない.)
コードにあるluaL_errorはLuaのC APIにある関数である.pStanceがnullptrだった場合などに,この関数を呼ぶのだろう.
http://b.hatena.ne.jp/entry/www.tawashix.com/entry/program
「新人に小文字を大文字に変換する課題をやらせたら、計算でやらなくてswitch文で全文字比較してきた」みたいな話題に「計算でやったらASCIIならいいけどEBCDICならダメだろ」ってツッコミがいくつかあって、それに星がいっぱいついてるけど、べつにEBCDICでも計算でOkだよな。
char bigletter = 'A' + (ch - 'a');
まあ、Cの仕様に大文字と小文字とで並びの間隔が同じでないといけないって決まりはないから、どんな環境でも動くってわけではないけど。
http://techwave.jp/archives/a-source-code-written-by-mr-mikitani.html
書き直してみた
void reverse(char* text, int length)
{
int i = 0;
int j = length;
char temp;
temp = text[i];
text[j] = temp;
i++;
j--;
}
}
int add_comma(int n, int length, char *out)
{
int i = 1;
int j = 0;
n = n / 10;
while (n > 0) {
if ((i % 3) == 0) {
out[j] = ',';
j++;
}
i++;
j++;
n = n / 10;
}
return -1;
}
reverse(out, j);
return j;
}