Phân tích chuỗi giữa hai dấu phân cách C++

Điều tôi muốn là nhận được từ "visualbasic" giữa hai dấu phân cách < và >, sau đó thêm ". com" đến từ tôi. e" trực quan. com" và cuối cùng thêm từ này trở lại chuỗi str để chuỗi str hiển thị là "Chào mừng bạn đến với thế giới"

Bài viết này trình bày mã C plus plus (C++) để trích xuất/thay thế một chuỗi con giữa hai dấu phân cách hoặc ký tự bằng cách sử dụng các hàm find và substr

Trích xuất chuỗi giữa hai dấu phân cách

Ví dụ: nếu bạn muốn trích xuất chuỗi giữa hai dấu phân cách “[” và “]” từ Sri[nivas]an , thì mã CPP sẽ là

#include  
using namespace std; 
  
int main() 
{ 
    // Take any string 
    string s1 = "Sri[nivas]an"; 
  
    // Find the position of first delimiter 
    int firstDelPos = s1.find("[");
    // Find the position of second delimiter
    int secondDelPos = s1.find("]");
    // Get the substring between two delimiters
    string strbetweenTwoDels = s1.substr(firstDelPos+1, secondDelPos-firstDelPos-1); 
  
    // prints the result 
    cout << "String between delimiters [ and ] is: " << strbetweenTwoDels; 
  
    return 0; 
} 
Phân tích chuỗi giữa hai dấu phân cách C++
Đầu ra mã C++ để trích xuất một chuỗi giữa hai dấu phân cách

Thay thế Chuỗi giữa hai dấu phân cách

Dưới đây là mã cộng cộng C để thay thế chuỗi giữa hai ký tự hoặc dấu phân cách trong một chuỗi. Mã thay thế “nivasa” giữa các dấu phân cách “[” và “]” trong “Sri[nivasa]n” bằng “vas”

Chuyển nhiều dấu phân cách cho hàm Tokenize được đưa ra trong bài đăng trên blog. Bạn có thể dễ dàng thay đổi tham số đầu ra từ vectơ của std::string thành vectơ của CString. Ngoài ra, một ứng dụng thử nghiệm được cung cấp để kiểm tra các trường hợp khác nhau. Mình đã thử với file 1MB, 2MB thấy khá ổn


Nibu babu thomas
Microsoft MVP cho VC++

Mã phải được viết để được đọc, không phải bởi trình biên dịch, mà bởi một người khác

Blog lập trình. http. //nibuthomas. báo chí. com


Phân tích chuỗi giữa hai dấu phân cách C++

tôi đã thử với str. Mã hóa ('%', 0)

Bạn có thể sử dụng chính CStringT::Tokenize(). nó chấp nhận một chuỗi dấu phân cách làm tham số. Chẳng hạn, hãy xem đoạn mã mẫu từ msdn

Trân trọng,
Jijo

_____________________________________________________________

http. //weseetips. com[^] Mẹo và thủ thuật Visual C++. Cập nhật hàng ngày


Phân tích chuỗi giữa hai dấu phân cách C++

Xin chào, tôi gặp vấn đề tương tự, nhưng tôi cũng cần các dấu phân cách là các chuỗi. Đây là một chức năng tôi đã viết để làm điều này.
std::string FindEnclosedString( const std::string& src, const std::string& left_guard, const std::string& right_guard )
{
	int start, stop;
	std::string dest;

	start = src.find(left_guard);
	if (start != std::string::npos)
	{
		start += left_guard.size();
		
		stop = src.find(right_guard, start);
		if (stop != std::string::npos)
			stop -= start;
		
		dest = src.substr(start, stop);
	}
	
	return dest;
}

Có đủ ánh sáng cho những người muốn thấy, và có đủ bóng tối cho những người có khuynh hướng trái ngược
Blaise Pascal


Tôi muốn gửi một chuỗi Lệnh đến cổng modem (COM3)
Tôi đã tạo một tệp với CreateFile()
thì tham số của hàm WriteFile() để gửi một chuỗi đến cổng COM3 là gì. ?

Phân tích chuỗi giữa hai dấu phân cách C++

Bạn đã thử chuyển tên tệp là "COM3" chưa (không cần phần mở rộng, không cần thư mục gốc hoặc đường dẫn tuyệt đối). Điều đó phải cung cấp cho bạn quyền truy cập trực tiếp vào cổng

Ngoài ra cổng COM3 còn gắn cái gì nữa? . Tôi nghĩ bạn cần thử chỉ định tên tệp là "COM3", như tôi đã nói và nếu nó không mang lại cho bạn kết quả mong muốn, bạn sẽ cần cung cấp thêm chi tiết

Nhiều người ngoan cố theo đuổi con đường mình đã chọn, số ít theo đuổi mục tiêu - Friedrich Nietzsche

·´¯`·->Rajesh<-·´¯`·
[Microsoft MVP - Visual C++]


Phân tích chuỗi giữa hai dấu phân cách C++

Mình đang cấu hình cổng COM3 như sau

Phân tích chuỗi giữa hai dấu phân cách C++

Mình đang cấu hình cổng COM3 như sau
và nó đang được cấu hình chính xác

Phân tích chuỗi giữa hai dấu phân cách C++

Tốt. Bây giờ, bạn có thể coi nó như một tệp và viết các lệnh của mình như thể bạn đang viết nó vào một tệp. Bạn có thể sử dụng WriteFile[^] chẳng hạn. Hoặc bạn có một rắc rối ở một nơi khác?
Phân tích chuỗi giữa hai dấu phân cách C++

Many are stubborn in pursuit of the path they have chosen, few in pursuit of the goal - Friedrich Nietzsche

·´¯`·->Rajesh<-·´¯`·
[Microsoft MVP - Visual C++]


Chào mọi người,

Tôi có dự án này đang tải xuống các bản cập nhật sản phẩm qua internet. Điều tôi làm đầu tiên là trước khi tôi có thể chuyển sang lần tải xuống thứ hai, lần tải xuống đầu tiên phải hoàn tất. Bây giờ tôi đã quyết định tạo một chủ đề để tôi có thể tải xuống các bản cập nhật đồng thời

Hãy để tôi hiển thị một chút mã

while (m_bIsRunning)
	{
		Sleep(5000);			
			if (isUpdateTime())
			{
			CSiteCode m_CSiteCode;
				RMproduct* MPoint = new RMproduct(L"ManagePoint",ManagepointService, ManagepointVersion);
				if (isPrdInstalled(MPoint))
				{
					GetVersion(MPoint);
					MPoint->m_SiteCode = m_CSiteCode.GetMPSiteCode(MPoint->m_SerialNo.c_str());
					dloadAvailable = DoCheckForProductUpdates(MPoint);
					if(dloadAvailable)
					{
					GetUpdate(MPoint);
					}
				}
				delete MPoint;

				RMproduct* ReRite = new RMproduct(L"ReRite",ReriteService, ReriteVersion);
				if (isPrdInstalled(ReRite))
				{
					GetVersion(ReRite);
					ReRite->m_SiteCode = m_CSiteCode.GetReRiteSiteCode(ReRite->m_SerialNo.c_str());
					dloadAvailable = DoCheckForProductUpdates(ReRite);
					if(dloadAvailable)
					{
					GetUpdate(ReRite);
					}
				}
				delete ReRite;

				RMproduct* ReRiteAsian = new RMproduct(L"ReRite",ReriteAsianService, ReriteAsianVersion);
				if (isPrdInstalled(ReRiteAsian))
				{
					GetVersion(ReRiteAsian);
					ReRiteAsian->m_SiteCode = m_CSiteCode.GetReRiteAsianSiteCode(ReRiteAsian->m_SerialNo.c_str());
					dloadAvailable= DoCheckForProductUpdates(ReRiteAsian);
				if(dloadAvailable)
					{
					GetUpdate(MPoint);
					}
				}
				delete ReRiteAsian;

			}
		
	}

Đây là dịch vụ btw. Bây giờ chức năng GetUpdate gọi một chức năng gọi là downloadfile

Tệp tải xuống này đang tạo một chuỗi gọi hàm toàn cục downloadthread để tải xuống bản cập nhật. Hành vi của chức năng chuỗi tải xuống này là ngay cả khi dịch vụ dừng sau khi được khôi phục, nó sẽ bắt đầu tải xuống ở nơi nó kết thúc

Bây giờ điều tôi muốn biết là trong khi luồng đầu tiên đang tải xuống bản cập nhật đầu tiên thì nó có chuyển sang bản cập nhật tiếp theo và tải xuống không?

Thanks,
Jayjay

Phân tích chuỗi giữa hai dấu phân cách C++

XỬ LÝ Array_Of_Thread_Handles[3];

Handle_Of_Thread_1 = CreateThread( NULL, 0, Thread_no_1, ((void*)prd), 0, NULL);
if ( Handle_Of_Thread_1 == NULL) ExitProcess(Data_Of_Thread_1);

// Lưu trữ các Thread handle trong Array of Thread Handles theo yêu cầu của WaitForMultipleObjects()
Array_Of_Thread_Handles[0] = Handle_Of_Thread_1;

Ở đây bạn đang tạo một mảng xử lý chưa được khởi tạo, sau đó chỉ thiết lập thành viên đầu tiên. Các tay cầm còn lại sẽ chứa các giá trị rác

// Đợi cho đến khi tất cả các luồng kết thúc
WaitForMultipleObjects( 3, Array_Of_Thread_Handles, TRUE, INFINITE);

Và ở đây, bạn đang đợi tất cả các giá trị xử lý bao gồm các giá trị xử lý rác, cuối cùng sẽ dẫn đến lỗi

Bây giờ điều tôi muốn biết là trong khi luồng đầu tiên đang tải xuống bản cập nhật đầu tiên thì nó có chuyển sang bản cập nhật tiếp theo và tải xuống không?

Bạn vừa tạo một chủ đề duy nhất

Trân trọng,
Jijo

_____________________________________________________________

http. //weseetips. com[^] Mẹo và thủ thuật Visual C++. Cập nhật hàng ngày


Phân tích chuỗi giữa hai dấu phân cách C++

Hi Jijo,

Cảm ơn vi đa trả lơi
vì vậy tôi đã thay đổi nó thành

Bạn có nói rằng nó sẽ hoàn tất việc tải xuống bản cập nhật đó ngay cả khi nó nằm trên một chuỗi và sẽ không tải xuống các bản cập nhật khác không?

cảm ơn,
Jayjay

Phân tích chuỗi giữa hai dấu phân cách C++

Những cập nhật nào khác?

Đánh dấu Salsbery
MVP của Microsoft - Visual C++

Phân tích chuỗi giữa hai dấu phân cách C++


Phân tích chuỗi giữa hai dấu phân cách C++

Chào Mark,

Đây là thỏa thuận

Vấn đề là MPoint2 và MPoint3 không chắc chắn tồn tại nếu chúng không tồn tại mã sẽ chỉ tải xuống một bản cập nhật nếu chúng tồn tại, nó có thể tải xuống 2 hoặc 3 bản cập nhật. Nhưng chắc chắn một điều tồn tại. Tôi phải tạo chủ đề như thế nào trong loại sự kiện này?

Thanks,
Jayjay

Phân tích chuỗi giữa hai dấu phân cách C++

Mã của bạn như chương trình không có gì đa luồng
Phương thức DownloadFile() tạo ra một luồng, nhưng vì nó
đợi chuỗi hoàn thành, đây thực sự là một quá trình phức tạp
cách để làm việc trên MỘT chủ đề

Tôi không hoàn toàn chắc chắn những gì bạn đang cố gắng làm

Bạn có muốn một chủ đề riêng biệt cho mỗi lần tải xuống và sau đó
một cách để đợi tất cả các luồng hoàn thành trước khi
ứng dụng tiến hành?

Đánh dấu Salsbery
MVP của Microsoft - Visual C++

Phân tích chuỗi giữa hai dấu phân cách C++


Phân tích chuỗi giữa hai dấu phân cách C++

Chào Mark,

Tôi muốn có một chuỗi riêng cho mỗi lần tải xuống và có thể đợi tất cả quá trình tải xuống hoàn tất hoặc để ứng dụng tiếp tục trong khi tải xuống, bất kỳ điều gì phù hợp với tôi

Thanks,
Jayjay

có phiên bản x64 của HTMLHELP không. LIB?

tôi đang cố di chuyển một dự án sang x64 và tôi đang nhận được một bên ngoài chưa được giải quyết trên HtemlHelpA

::HtmlHelpA(NULL, path, HH_DISPLAY_TOPIC, 0);

chức năng được xác định trong htmlhelp. h, nhưng nó dường như không có trong. LIB

tôi đã làm tất cả những gì tôi có thể làm

Chào mọi người,
trong ứng dụng của mình, tôi muốn đọc tất cả các giá trị khóa và dữ liệu của một số thư mục đăng ký, vì vậy tôi đang sử dụng hàm RegEnumValue này nhưng khi tôi giữ chức năng này trong vòng lặp thì nó đang đọc một vài giá trị và bị lỗi ở giữa
bất cứ ai có thể gợi ý cho tôi lý do cho việc này tôi đính kèm mã tôi đã sử dụng cho việc này

Phân tích chuỗi giữa hai dấu phân cách C++

và thất bại ở giữa

Chúng ta có phải đoán ở đâu không?

"Thương người mà dùng, không phải thương người mà dùng người. " - Không xác định

"Những bức tường gạch tồn tại là có lý do. để ngăn chặn những người không muốn nó đủ nặng. " - Randy Pausch

Làm cách nào để tách một chuỗi trong C bằng nhiều dấu phân cách?

Sử dụng hàm strtok() trong c và C++. trong khi Python có hàm split() mã hóa chuỗi dựa trên dấu phân cách. Trong Java có một lớp StringTokenizer cũng làm điều tương tự.

strtok có thể lấy nhiều dấu phân cách không?

Đối số strtok có thể chứa bao nhiêu dấu phân cách tùy ý .

Làm cách nào để tách một chuỗi không có dấu phân cách trong C?

vòng lặp với memcpy . Nên làm vậy.

Làm cách nào để tách một chuỗi trong C?

Trong C, hàm strtok() được sử dụng để tách một chuỗi thành một loạt mã thông báo dựa trên một dấu phân cách cụ thể. Mã thông báo là một chuỗi con được trích xuất từ ​​chuỗi gốc.