文字列データ


目次

文字列変数

string str1; // str1という文字列変数を宣言
str1 = "New York"; // str1 に文字列シーケンスを割り当て

string str2 = "Tokyo"; // 文字列変数を宣言して割り当て

// 文字列配列を宣言して文字列シーケンスで初期化
char ch[] = "This is a test!"; 

// 文字配列を宣言し、サイズを指定して文字列シーケンスで初期化
char chArr[255] = "Big World.";

文字列を数値に変換

string str = PI; // 数値を文字変数に割り当て

// 文字列を数値に割り当て
double dd = atof(str, true);
out_double("dd=", dd); // dd=3.14159

// 文字列を複素数に変換
str = "1+2.5i";
complex cc = atoc(str); 
out_complex("cc = ", cc); // cc = 1.000000+2.500000i

// 文字列を整数型に変換
str = "100";
int nn = atoi(str);
out_int("nn = ", nn); // nn = 100

数値/文字列を別の文字列に追加

// 数値または文字列を別の文字列に追加
// Origin Cでは、,数値/文字列の定数または変数を加えるのに'+'を使う
string str = "The area is " + 30.7; // double型の定数を文字列に追加

str += "\n"; // 文字列定数を文字列変数に追加

int nLength = 10;
str += "The length is " + nLength; // 整数型変数を文字列に追加

out_str(str);

部分文字列を検索

// 部分文字列を検索して取得
string str = "[Book1]Sheet1!A:C";
int begin = str.Find(']'); // ']' のインデックスを検索して戻す
begin++; // ] の次の文字に移動

int end = str.Find('!', begin); // '!' のインデックスを検索して戻す
end--; // ! の次の文字に移動

// 開始インデックスと部分文字列の長さで部分文字列を取得
int nLength = end - begin + 1;
string strSheetName = str.Mid(begin, nLength); 
out_str(strSheetName);// "Sheet1" が出力される

部分文字列の置換

// 1文字を検索して置換
string str("A+B+C+");
int nCount = str.Replace('+','-');
out_int("", nCount); // nCount は 3
out_str(str); // "A-B-C-" 

// 文字列を検索し、置換
str = "I am a student.\nI am a girl.";
nCount = str.Replace("I am", "You are");
out_int("", nCount); // nCount は 2
out_str(str);

パス文字列関数

ファイルパスの文字列

// string::IsFile はファイルをチェックするのに使用
string strFile = "D:\\TestFolder\\abc.txt";
bool bb = strFile.IsFile(); 
printf("The file %s is %sexist.\n", strFile, bb ? "" : "NOT ");

// GetFilePath関数はフルパスの文字列からパスを抽出するのに使用
string strPath = GetFilePath(strFile);	
out_str(strPath);

// GetFileName 関数はフルパスの文字列からファイル名の部分を  
// 抽出するのに使用
bool bRemoveExtension = true;
string strFileName = GetFileName(strFile, bRemoveExtension);
out_str(strFileName);

// string::IsPath はパスが存在するかチェック
bb = strPath.IsPath();
out_int("", bb);

Origin システムパス

string strSysPath = GetOriginPath(ORIGIN_PATH_SYSTEM);
printf("Origin System Path: %s\n", strSysPath);

string strUserPath = GetOriginPath(ORIGIN_PATH_USER);
printf("User File Path: %s\n", strUserPath);