文字の検索
- "文字の検索"
#include <iostream>
#include <cstring>
using namespace std;
int main(void){
// 自分の得意な言語で
// Let's チャレンジ!!
char str[100];
char c;
cin >> str;
cin >> c;
int length = strlen(str);
for(int count=1; count <= length; count++)
{
//if(str == "paiza") //できない 文字配列と文字リテラル、文字配列同士の比較はできない。
if(str[count-1] == c)//配列は0からなんで1個ずらす
cout << count << endl;
}
return 0;
}
部分文字列の表示
- "部分文字列の表示"
#include <iostream>
#include <cstring>
using namespace std;
int main(void){
// 自分の得意な言語で
// Let's チャレンジ!!
char str[100]; //99文字+'\0'
cin >> str;
int i, j;
cin >> i >> j;
for(int count = i-1; count < j; count++)
{
cout << str[count];
}
cout << endl;
return 0;
}
文字列の挿入
- "文字列の挿入"
#include <iostream>
#include <cstring>
using namespace std;
int main(void){
char strS[100];
char strT[100];
int num;
char strRes[200];
cin >> strS >> strT;
cin >> num;
int lenS = strlen(strS);
int lenT = strlen(strT);
int lenRes = lenS + lenT;//できる文字列の長さ
//① 0 ~ num-1 文字目まで S
//② num ~ num + lenT -1文字目 T
//③ num + lenT ~ lenS + lenT - 1 文字目までS[i-lenT]
for(int i=0; i<lenRes; i++)
{
if(i<num)
strRes[i] = strS[i];
else if(i < num + lenT)
strRes[i] = strT[i-num];
else
strRes[i] = strS[i-lenT];
}
for(int i=0;i<lenRes;i++)
{
cout << strRes[i];
}
return 0;
}
10進数を文字で入力
"1984" -> 数値 1984
char str[8]
cin >> str;
"1984"
str[0] = '1' 文字 -> 整数1
str[1] = '9' 文字 -> 整数9
str[2] = '8' 文字 -> 整数8
str[3] = '4' 文字 -> 整数4
str[4] = '\0' 終端文字
str[5] = ???
str[6] = ???
str[7] = ???
int val[8]
val[0] = '1' - '0' = 1
val[1] = '9' - '0' = 9
val[2] = '8' - '0' = 8
val[3] = '4' - '0' = 4
1984 = 1*1000 + 9*100 + 8*10 + 4*1
= 1*10^3 + 9*10^2 + 8*10^1 + 4*10^0
int length = strlen(str); //今length=4
for(int i=0; i<strlen; i++)
{
val[i] = val[i]*pow(10, length-i-1);
}
val[0] = 1*pow(10,3)
val[1] = 9*pow(10,2)
val[2] = 8*pow(10,1)
val[3] = 4*pow(10,0)
int sum = 0;
for(int i=0; i<strlen; i++)
{
sum = sum + val[i];
}
</code.10進数を文字で入力
"1984" -> 数値 1984
char str[8]
cin >> str;
"1984"
str[0] = '1' 文字 -> 整数1
str[1] = '9' 文字 -> 整数9
str[2] = '8' 文字 -> 整数8
str[3] = '4' 文字 -> 整数4
str[4] = '\0' 終端文字
str[5] = ???
str[6] = ???
str[7] = ???
int val[8]
val[0] = '1' - '0' = 1
val[1] = '9' - '0' = 9
val[2] = '8' - '0' = 8
val[3] = '4' - '0' = 4
1984 = 1*1000 + 9*100 + 8*10 + 4*1
= 1*10^3 + 9*10^2 + 8*10^1 + 4*10^0
int length = strlen(str); //今length=4
for(int i=0; i<strlen; i++)
{
val[i] = val[i]*pow(10, length-i-1);
}
val[0] = 1*pow(10,3)
val[1] = 9*pow(10,2)
val[2] = 8*pow(10,1)
val[3] = 4*pow(10,0)
int sum = 0;
for(int i=0; i<strlen; i++)
{
sum = sum + val[i];
}