সি ++ 1 চর থেকে স্ট্রিংয়ে রূপান্তর করবেন? [বন্ধ]


121

আমাকে মাত্র 1 charথেকে কাস্ট করতে হবে string। বিপরীত উপায় মত বেশ সহজ str[0]

নিম্নলিখিতগুলি আমার পক্ষে কার্যকর হয়নি:

char c = 34;
string(1,c);
//this doesn't work, the string is always empty.

string s(c);
//also doesn't work.

boost::lexical_cast<string>((int)c);
//also doesn't work.

3
পুনরুত্পাদন করা যাবে না: coliru.stacked- ক্রুটেড.com/…
ক্রিস

10
আপনি কী ভাবছেন string(1, c)তা কাজ করে না? এটি করার সঠিক উপায়।
টেম্পলেট

1
আপনি কোন সংকলক ব্যবহার করছেন? কি পরিবেশ। হতে পারে এটি আপনার সংকলক সহ একটি বাগ।
মরিস রিভস

libc ++, abi.dylib: একটি ব্যতিক্রম নিক্ষেপ নামক বিনষ্ট
weeo

3
@ সাপ্তাহিক- ত্রুটিটি সম্ভবত আপনার প্রোগ্রামের অন্য কোথাও। দয়া করে একটি স্ব-অন্তর্ভুক্ত, পুনরুত্পাদনযোগ্য উদাহরণ পোস্ট করুন যা এরোটি দেখায় যাতে আমরা আপনাকে কী ভুল তা খুঁজে পেতে সহায়তা করতে পারে।
টেম্পলেট

উত্তর:


184

সব

std::string s(1, c); std::cout << s << std::endl;

এবং

std::cout << std::string(1, c) << std::endl;

এবং

std::string s; s.push_back(c); std::cout << s << std::endl;

আমার জন্য কাজ।


4
সংক্ষিপ্ততম উপায়: স্ট্রিং এস = "" + সি;
ডক্ট্রামাম

17
@ ডক্টররাম না! 1. আপনি যে উদ্ধৃতি চিহ্নগুলি ব্যবহার করছেন তা অবৈধ সি ++; ২. এমনকি যদি আপনি বোঝাতে চেয়েছিলেন যে s = "" + cএটি কেবলমাত্র ইউবি কারণ এটি "চরিত্রের সাথে খালি স্ট্রিংটি একত্রীকরণ করা" নয়, এর অর্থ "খালি স্ট্রিংয়ের cকয়েকটি অনুলিপিটির পয়েন্টার, এর সংখ্যাসূচক মান দ্বারা উন্নত c(যা আপনি নির্ধারিতভাবে নয় তবে চেয়েছিল); ৩. আপনি যদি বোঝাতে চেয়েছিলেন তবে s = ""s + cএটি দীর্ঘতর s{1, c}... ... (এবং আপনাকে using std::literals;কোথাও লিখতে হবে ...
ম্যাসা

11
দুঃখিত, আমি বোঝাতে চাইছিলাম: স্ট্রিং এস = স্ট্রিং () + 'এ';
ডক্ট্রামাম

1
আমি সেই ভুল মন্তব্যে থাকা উচ্ছেদটি সরাতে পারি না ...
জ্যাক ওপজে

10

আমি সত্যই ভেবেছিলাম কাস্টিং পদ্ধতিটি ঠিকঠাক কাজ করবে। যেহেতু এটি না আপনি স্ট্রিংস্ট্রিম চেষ্টা করতে পারেন। একটি উদাহরণ নীচে:

#include <sstream>
#include <string>
std::stringstream ss;
std::string target;
char mychar = 'a';
ss << mychar;
ss >> target;

2
আমি মনে করি না যে এই নির্দিষ্ট স্ট্রিং কনস্ট্রাক্টর কাজ করছে না তার আসল সমস্যার সাথে কোনও সম্পর্ক আছে।
ক্রিস

1
সম্ভবত সঠিক, তবে ভেবেছিলাম আমি সহজ উত্তরটি দেব: পি
ম্যালেন

এই সমাধানটি কাজ করে, তবে স্ট্রিংস্ট্রিম ( <sstream>) ব্যবহার করা প্রয়োজনীয় নয় কারণ এটি সংকলন প্রক্রিয়াটি ধীর করে দিয়ে প্রকল্পে পুরো গ্রন্থাগারকে অন্তর্ভুক্ত করবে। আপনার প্রকল্পের অপ্রয়োজনীয় নির্ভরতা সহ এড়াতে চেষ্টা করুন।
ক্রিশ্চিয়ান
আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.