সি ++ 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.