الفريق العربي للبرمجةأرشيف المنتديات · 2000 – 2023
نسخة أرشيفية للقراءة فقط — التسجيل والمشاركة مغلقان، والمحتوى محفوظ كما كان.

التحويل من std::string إلى int

مغلق
بدأه م. حسام فيصل في 9 مايو 2007 · 6 رد · 945 مشاهدة · في لغة C و ++C
مشاركة: واتساب X فيسبوك تيليجرام
#1 صاحب الموضوع

السلام عليكم :

هل من مساعدة في التحويل من std::string إلى int ؟؟؟ مع العلم أن الدوال atoi و sprintf و wsprintf مخصصة لأنماط النصوص من النوع char * و CString وLPSTR و لا تنفع من أجل std::string و قد أصبت بصداع عند التحويل إلى الأنماط السابقة من std::string ؟؟؟؟

1
#2

لا يوجد أجمل من "إختراع العجلة من جديد" :

int convert(std::string a) 
{ 
  int x = 0; 
  int m = a.size(); 
  for(int i = 0; i < m; ++i) 
  { 
	int number = a - 48; 
	x = x + ( number * pow((double) 10,(double)m - i - 1)); 
  } 
  return x; 

}

عذراً

1
#3

ممكن نفهم ايش عمل الدالة هذي ؟

هل هو مقارب لـ :

int someOfString( char* sentence )
{
	int total=0;

	for ( int i=0; sentence != ''; i++ )
		total += sentence;

	return total;
}

تم تعديل هذه المشاركة بواسطة مجلـد جديـد في 9 مايو 2007 في 15:41

#4

السلام علكيم

أخي حسام, هذان طريقتان للتحويل من std::stringالى int

#include "stdafx.h"
#include <sstream>
#include "conio.h"
int _tmain(int argc, _TCHAR* argv[])
{  //---- First method
  std::string str = "4562";
  int number = atoi(str.c_str());
  //--------- Second method
  std::string str1 = "1430";
  std::istringstream stream(str1);
  int number1 = 0;
  stream >> number1;

  printf("First Method ==> %d \nSecond Method ==> %d",number, number1);
  getch();
  return 0;
}
#5

بالنسبة للطريقة الثانية التي تعتمد على توابع istringstream فتعريفها داخل ملف sstream.h الذي لم أجده مع نسخ Visual.net كلها (2005-2003) و لا أدري إذا كان مخصصاً لــlinux بالأصل ...

1
#6

السلام عليكم

لقد تأكدت من عمل الكود قبل الإجابة على موضوعك. والنتيجة ظاهرة في الصورة المرفقة.

إستعمل

#include <sstream>

وليس

#include <sstream.h>

هذا إصدار الفيزوال ستوديو دوت نت

8.0

وهذ إصدار ال Compact Framwork 2.0 :)

post-91400-1178789844_thumb.jpg

#7

أعتذر أخي الكريم فلم أنتبه إلى عدم وجود .h ...

الشكر الجزيل

1

هذا الموضوع مغلق.

مواضيع مشابهة