タグ付けされた質問 「string」

文字列はシンボルの有限シーケンスであり、通常はテキストに使用されますが、任意のデータに使用されることもあります。

3
Cでの文字列の定義の詳細は何ですか?
私はクラスの1つに対する宿題の質問に回答することになっています。具体的には、Cの特定の配列が文字列と見なされるかどうかを言うことになっています。この記事(https://www.geeksforgeeks.org/strings-in-c-2/)に基づいて、文字列は末尾にヌルターミネータが付いた文字の配列であることを知っています。 私の主なハングアップは、次のような配列について尋ねる質問の一部です。 char c1[] = { 'C', 'S', '\0', '3', '2', '4', '\0' }; これは明らかに、末尾にヌル終了文字がある文字の配列です。ただし、途中にnullの終了文字があるため、文字列と見なされますか?それは文字列にどのように影響しますか? 編集:コメントに基づいて、私は質問の実際の表現を提供しました: 「次の配列のうち、strcpy()、strncpy()、strcmp()、strncmp()、および同様の文字列関数(すべての適用を示す)への引数として使用するために、「文字列」と見なすことができるのはどれですか? " 編集:質問が曖昧に書かれているようだったので(数人が指摘したように)、それについて教授にメールを送りました。誰かが気になるなら、彼は私に「はい、それは文字列です。重要なのはnull文字があることです。しかし、もちろんそれはすべての文字列操作に影響します。文字列はnull文字で終わります。」

4
乗算C#を使用せずに文字列を整数に変換する
乗算を使用せずに文字列を整数に変換する方法はありますか?int.Parse()の実装も乗算を使用します。文字列をintに手動で変換できる他の同様の質問がありますが、これには、その基数10で数値を乗算する必要があります。これは、インタビューの1つで受けたインタビューの質問であり、これに関する答えを見つけることができません。
9 c#  string  int 

5
最後の(または唯一の)文字がゼロでない限り、Rの先行ゼロを削除する正規表現
gsub("(?<![0-9])0+", "", c("005", "0AB", "000", "0"), perl = TRUE) #> [1] "5" "AB" "" "" gsub("(^|[^0-9])0+", "\\1", c("005", "0AB", "000", "0"), perl = TRUE) #> [1] "5" "AB" "" "" 上記の正規表現は、Rの文字列からすべての先行ゼロを削除する方法を説明するこのSOスレッドからのものです。この正規表現の結果として、「000」と「0」は両方とも「」に変換されます。代わりに、最後の文字が偶然ゼロである場合、または唯一の文字がゼロである場合を除いて、文字列からすべての先行ゼロを削除します。 "005" would become "5" "0AB" would become "AB" "000" would become "0" "0" would become "0" この別のSOスレッドは私がやりたいことを行う方法を説明していますが、Rのソリューションを適用して構文が完全に正しいとは思いません。また、以下の1番目と2番目のソリューションの違いを本当に理解していません(彼らが実際に働いた場合)。 gsub("s/^0*(\d+)$/$1/;", "", …
9 r  regex  string  gsub  stringr 

6
重複する文字を一致させて削除する:複数(3+)の連続しない出現箇所を置き換えます
regex各文字の3番目、4番目、...の出現に一致するパターンを探しています。明確にするために以下を見てください: たとえば、次の文字列があります。 111aabbccxccybbzaa1 2回目以降の重複文字をすべて置き換えたい。出力は次のようになります。 11-aabbccx--y--z--- これまでに試したいくつかの正規表現パターン: 次の正規表現を使用して、各文字の最後の出現を見つけることができます。 (.)(?=.*\1) または、これを使用して、連続する重複に対してそれを行うことができますが、重複に対してはできません: ([a-zA-Z1-9])\1{2,}
9 python  r  regex  string 

3
Rで文字列の文字を効率的に並べ替える方法
ベクター内の各文字列の文字を効率的に並べ替えるにはどうすればよいですか?たとえば、文字列のベクトルが与えられた場合: set.seed(1) strings <- c(do.call(paste0, replicate(4, sample(LETTERS, 10000, TRUE), FALSE)), do.call(paste0, replicate(3, sample(LETTERS, 10000, TRUE), FALSE)), do.call(paste0, replicate(2, sample(LETTERS, 10000, TRUE), FALSE))) 各文字列をベクトルに分割し、ベクトルを並べ替えて、出力を折りたたむ関数を作成しました。 sort_cat <- function(strings){ tmp <- strsplit(strings, split="") tmp <- lapply(tmp, sort) tmp <- lapply(tmp, paste0, collapse = "") tmp <- unlist(tmp) return(tmp) } sorted_strings <- sort_cat(strings) ただし、これを適用する必要がある文字列のベクトルは非常に長く、この関数は遅すぎます。パフォーマンスを改善する方法について何か提案はありますか?

1
楽:要素を区切るスペースなしで配列を文字列に変換する超高速な方法はありますか?
それぞれが1メガバイトの長さの何千ものバイナリバイト文字列をASC文字列に変換する必要があります。これは私がやっていることであり、遅すぎるようです: sub fileToCorrectUTF8Str ($fileName) { # binary file my $finalString = ""; my $fileBuf = slurp($fileName, :bin); for @$fileBuf { $finalString = $finalString ~ $_.chr; }; return $finalString; } 〜@ bは@bをすべての要素をスペースで区切った文字列に変換しますが、これは私が望んでいることではありません。@b = <abcd>;の場合 〜@ bは「abc d」です。しかし、私は単に「abcd」が欲しいし、これを本当に速くしたい。 それで、最善の方法は何ですか?最終的な文字列は順番に作成されるため、並列処理にハイパーを実際に使用することはできません。または私はできますか?
8 arrays  string  binary  raku 

7
文字列で最も長い単語を見つけて、それらを(重複を除いて)最大長とともに返すにはどうすればよいですか?
文字列内で最も長い単語を見つける方法を知っています。たとえば、このコードはここにあります。しかし、ここでの問題は、「bbbbbb」という単語が見つかったということです。彼が文字列の最初の最長の単語であるためです。その後、6文字で「ジャンプ」という単語も出てきました。私の質問は、この場合と「ジャンプした」という言葉をどのように見つけることができるかです。 更新:一意のリストが必要なので、各単語の1つのみ function longestWord(sentence) { sentence = sentence.split(' '); let theWord = sentence[0]; var longest = 0; for (let i = 0; i < sentence.length; i++) { if (sentence[i] != "") { if (sentence[i].length > theWord.length) { longest = sentence[i].length; theWord = sentence[i]; } } } return { length: longest, …

5
文字列データをデータフレームに変換
私はRを初めて使用するので、どんな提案でもいただければ幸いです。 これはデータです: coordinates <- "(-79.43591570873059, 43.68015339477487), (-79.43491506339724, 43.68036886994886), (-79.43394727223847, 43.680578504490335), (-79.43388162422195, 43.68058996121469), (-79.43281544978878, 43.680808044458765), (-79.4326971769691, 43.68079658822322)" 私はこれになりたいです: Latitude Longitude -79.43591570873059 43.68015339477487 -79.43491506339724 43.68036886994886 -79.43394727223847 43.680578504490335 -79.43388162422195 43.68058996121469 -79.43281544978878 43.680808044458765 -79.4326971769691 43.68079658822322
8 r  regex  string 

1
コンパイル時に解決されない文字列リテラルとの比較
私は最近、次のようなものを見つけました。 #include <string> // test if the extension is either .bar or .foo bool test_extension(const std::string& ext) { return ext == ".bar" || ".foo"; // it obviously should be // return ext == ".bar" || ext == ".foo"; } 関数は明らかにコメントが示唆することを行いません。しかし、それはここでのポイントではありません。これはifステートメントで2つ以上のOR条件を使用できますか?あなたが関数を適切に書く方法を私は完全に知っているので! コンパイラがこのスニペットをどのように処理するのか疑問に思い始めました。私の最初の直感は、これがreturn true;基本的にコンパイルされるということでした。この例をgodboltに接続すると、GCC 9.2もclang 9も最適化でこの最適化を行わないことがわかりました-O2。 ただし、コードを1に変更する #include <string> using namespace std::string_literals; …

4
ハイフンで分割された複合語を2つの個別の単語に分割する方法
次のリストがあります list1= ['Dodd-Frank', 'insurance', 'regulation'] 以下を使用してハイフンを削除しました new1 =[j.replace('-', ' ') for j in list1] 私が得た結果 new1= ['Dodd Frank', 'insurance', 'regulation'] 理想的に欲しい結果は new1= ['Dodd', 'Frank', 'insurance', 'regulation'] これを最もpythonic(効率的な方法)で実現するにはどうすればよいですか?

2
C ++で負の数と正の数の両方を含む文字列の配列を並べ替える方法は?
String str[]={"-123","89","-10","456"}; str文字列の配列であり、各文字列は整数の形式であり、この配列に対してO(n log n)時間内にソートを実行する必要があります。 の文字列はstr、正と負の両方の整数を表すことができます。これらの文字列の最大長は1024文字です。 この問題の1つの解決策は、文字列を数値に変換し、これとは別に比較することです。この問題の他の解決策はありますか?
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.