文字列の使用
プログラミングは最終的に抽象的で複雑な機械言語を簡略化する。
CS 50自身のライブラリの中で文字列の長さの関数
strlen
を求めます教授はfor文を書いているだけです.
striing s = "어떤 문장열";
for(int i = 0; i < strlen(s); i++)
{
printf("%c", s[i]);
}
このように書くと、重複する文ごとに「呼び出し」strleng()
が呼び出されるからです.striing s = "어떤 문장열";
int n = strlen(s);
for(int i = 0; i < n; i++)
{
printf("%c", s[i]);
}
文字列の長さを変数に割り当て、繰り返し文で回転します.厳密に言えば、改善された方法の欠点は、空間の複雑さがより高く、すなわちメモリが消費される空間がより大きいことです.あるけど、
時間の複雑さと空間の複雑さ、両者の間で何がもっと重要かを選択するとき、
上記の例は簡単で、小さな例のようですが、重要なテーマのようです.
テキスト比較
string s = "abcdef"
if(s[0] > s[1])
{
// 무엇을 해라
}
このような文字列を比較するとどのような基準がありますか?アシュキパスワードです
不思議なことに、大文字に32を加えると同じ小文字になります.
この授業では文字列を繰り返してすべての字を大文字にしたいとき、
繰り返す文の中で
// s라는 문자열 선언
// 위는 for문 로직
if(s[i] >= 'a'&& s[i] <= 'z')
{
printf(%c, s[i] - 32)
}
1つの文字が「a」以上で、「z」以下である場合(小文字のみがフィルタされることを示す)そうすると
-32
、すべての字が大文字に変換されます.Askyコードを大文字に置き換え、Javascript to LowerCase()とToUpperCase()も同じ論理ですか?
これはできるだけ機械言語に近づく方法です.
ウォード、グーグル毒なども同様に大文字小文字に変更した.
しかし、これは非常に複雑であるか、コードが長く書かれている可能性があります.
このために作成した関数を使用してみましょう.
ファイルをインポートし、書き込みのためにプロトタイプを宣言する必要があります.
CS 50サイトがこれらのファイルを提供しているそうです.
それによると.
#include <ctype.h>
タイトルに名前のファイルを配置する必要があります.#include <ctype.h>
int toupper(int c);
int tolower(int c);
事前にプロトタイプを宣言してから、関数を使うことができるそうです.関数を使用するには
#include <ctype.h>
int toupper(int c);
int tolower(int c);
// s라는 문자열 선언
for(int i = 0; n = strlen(s); i < n; i++){
if(s[i] >= 'a'&& s[i] <= 'z')
{
printf(%c, toupper(s[i]);
}
}
このように行ってから書けばいいです.CだけでなくJavaScriptもこの関数の仕組みを内部から理解しているようです.
ここで、学生は、なぜ繰り返し文のiがintタイプの声明をしないのか、nがしないのかと質問する.
->教授:iのタイプと同じであれば、nの位置に着く必要はありません.違う限りやらなければならない.
出典:[ガイドコース]全員向けコンピュータ科学(CS 502019)(https://www.boostcourse.org/)
Reference
この問題について(文字列の使用), 我々は、より多くの情報をここで見つけました https://velog.io/@srparkgogo/문자열의-활용テキストは自由に共有またはコピーできます。ただし、このドキュメントのURLは参考URLとして残しておいてください。
Collection and Share based on the CC Protocol