Hướng Dẫn Và Ví Dụ C/C++ String - Openplanning

  • Tất cả tài liệu
  • Java
    • Java Basic
    • Java Collections Framework
    • Java IO
    • Java New IO
    • Java Date Time
    • Servlet/JSP
    • Eclipse Tech
      • SWT
      • RCP
      • RAP
      • Eclipse Plugin Tools
    • XML & HTML
    • Java Opensource
    • Java Application Servers
  • Maven
  • Gradle
  • Servlet/Jsp
  • Thymeleaf
  • Spring
    • Spring Boot
    • Spring Cloud
  • Struts2
  • Hibernate
  • Java Web Service
  • JavaFX
  • SWT
  • Oracle ADF
  • Android
  • iOS
  • Python
  • Swift
  • C#
  • C/C++
  • Ruby
  • Dart
  • Batch
  • Database
    • Oracle
    • MySQL
    • SQL Server
    • PostGres
    • Other Database
  • Oracle APEX
  • Report
  • Client
  • ECMAScript / Javascript
  • TypeScript
  • NodeJS
  • ReactJS
  • Flutter
  • AngularJS
  • HTML
  • CSS
  • Bootstrap
  • OS
    • Ubuntu
    • Solaris
    • Mac OS
  • VPS
  • Git
  • SAP
  • Amazon AWS
  • Khác
    • Chưa phân loại
    • Phần mềm & ứng dụng tiện ích
    • VirtualBox
    • VmWare
Hướng dẫn và ví dụ C/C++ string
  1. C-Style String
  2. C++ Style String

1. C-Style String

C-style StringTrong C++ có hai loại chuỗi (string), chuỗi theo phong cách của C (C-style string), và chuỗi theo phong cách của C++ (C++-Style string).C-Style string thực sự là một mảng các ký tự, nhưng có một số hàm khác nhau được sử dụng cho các chuỗi, ví dụ như thêm vào các chuỗi, tìm chiều dài của chuỗi, và các hàm kiểm tra phù hợp của string với một biểu thức chính quy (regular expression).Định nghĩa của một chuỗi sẽ là cái gì đó chứa nhiều hơn một ký tự kết hợp với nhau. Ví dụ, "this" là một chuỗi. Tuy nhiên, một ký tự đơn lẻ không được coi là một chuỗi, mặc dù chúng được sử dụng giống như một chuỗi.String thực chất là một mảng các ký tự. Sử dụng dấu nháy kép để dánh dấu một chuỗi chữ (string literals)// Khai báo một string theo kiểu mảng. Với ký tự null ở cuối. char mystring[] = { 't', 'h', 'i', 's', ' ', 'i', 's' ,' ', 't', 'e', 'x', 't', '\0'}; // Đây là một string literal char mystring[] = "this is text'';StringLiteralExample.cpp#include <stdio.h> int main() { // Khai báo một String (String literal). char s1[] = "What is this"; // In ra nội dung của string. printf("Your string = %s", s1); fflush(stdout); return 0; }Kết quả chạy ví dụ:
  • char mystr[] = "what is this";
Đoạn string ở trên có 12 ký tự, để khai báo string đó trong C bạn cần khai báo một mảng ký tự có 13 phần tử, hãy nhớ rằng phần tử cuối cùng trong mảng là ký tự null (mã là '\0'), nó có ý nghĩa kết thúc của string. Ký tự cuối cùng này không có ý nghĩa trong chuỗi của bạn, nhưng nó cần thiết cho chương trình C, chẳng hạn con trỏ (pointer) trỏ tới một ví trí của string nó sẽ đứng ở vị trí ký tự đầu tiên, và muốn lấy ra nội dung của chuỗi, chương trình sẽ duyệt tiếp các phần tử tiếp theo cho tới khi bắt gặp ký tự null.
Trong tình huống bạn có một mảng các ký tự và trong đó có phần tử ký tự null không nằm ở cuối của mảng, hoặc có nhiều phần tử ký tự null ở trong mảng. Tuy nhiên C sẽ chỉ coi mảng này chứa một string, bao gồm các ký tự đầu tiên cho tới ký tự null đầu tiên trong mảng.
Ví dụ sau đây khai báo một mảng các ký tự có 100 phần tử dùng để lưu trữ đoạn text do người dùng nhập vào từ bàn phím. Trong tình huống này các ký tự của chuỗi nhập vào sẽ được gán cho các phần tử đầu tiên của mảng và sau đó là ký tự null. Và các phần tử tiếp theo có thể không được gán.StringFromKeyboardExample.cpp#include <stdio.h> int main() { // Khai báo 1 mảng ký tự có 100 phần tử // dùng để lưu trữ string người dùng nhập vào từ bàn phím. char s1[100]; printf("Enter your string: \n"); fflush(stdout); // Hàm scanf chờ đợi người dùng nhập vào. // Nó sẽ quét string (định dạng bởi %s) và truyền vào biến s1. // Chú ý định dạng %s sẽ quét lấy đoạn string đầu tiên không chứa khoảng trắng. scanf("%s", s1); printf("Your string = %s", s1); fflush(stdout); return 0; }Kết quả chạy ví dụ:Các hàm cho C-style StringC cung cấp một số hàm để làm việc với String. Nó nằm trong thư viện chuẩn <string.h>. Dưới đây tôi liệt kê một vài hàm thông dụng của C liên quan string (không phải là tất cả).

Bạn có thể tìm hiểu tại liệu về các hàm tiêu chuẩn của C tại:

  • TODO
Một số hàm cho String.
Tên hàmMô tả
size_t strlen(const char *str)Tính toán độ dài của chuỗi, không tính ký tự kết thúc (ký tự null)
char *strcpy(char *dest, const char *src)Copy string 'src' sang cho 'dest'.
int strcmp(const char *str1, const char *str2)So sánh hai string cho bởi tham số con trỏ str1, và str2. Nó trả về một số nguyên > 0 nghĩa là str1 > str2. Và = 0 nghĩa là 2 chuỗi giống nhau, ngược lại str1 < str2.
char *strcat(char *dest, const char *src)Appends the string pointed to by src to the end of the string pointed to by dest.
char *strchr(const char *str, int c)Searches for the first occurrence of the character c (an unsigned char) in the string pointed to by the argument str.
StringFunctionsExample.cpp#include <stdio.h> // Khai báo sử dụng thư viện string.h #include <string.h> int main() { // Khai báo một String (String literal). char s1[] = "This is "; // Khai báo một string theo kiểu khai báo mảng // Với phần tử null ở cuối. char s2[] = { 't', 'e', 'x', 't', '\0' }; // Hàm: size_t strlen(const char *str) // Sử dụng hàm strlen để kiểm tra độ dài chuỗi. // size_t là kiểu dữ liệu số nguyên không dấu. size_t len1 = strlen(s1); size_t len2 = strlen(s2); printf("Length of s1 = %d \n", len1); printf("Length of s2 = %d \n", len2); // Khai báo một mảng ký tự có 100 phần tử // (100 phần tử là đủ dùng trong trường hợp này). char mystr[100]; // Hàm: char *strcpy(char *dest, const char *src) // Copy string s1 vào mystr strcpy(mystr, s1); // Hàm: char *strcat(char *dest, const char *src) // Sử dụng hàm strcat để nối s2 vào mystr strcat(mystr, s2); // In ra nội dung của string. printf("Your string = %s", mystr); fflush(stdout); return 0; }Kết quả chạy ví dụ:

2. C++ Style String

C++ cung cấp cho bạn class string, nó giúp bạn làm việc dễ dàng hơn với các chuỗi. Các phương thức mà class string cung cấp vẫn hỗ trợ để làm việc với các C-Style string.Khai báo thư viện stringĐể sử dụng string bạn phải khai báo chỉ thị tiền sử lý (Preprocessor Directives) #include <string> và khai báo sử dụng không gian tên std.// Khai báo chỉ thị tiền sử lý (Preprocessor Directives) #include <string> // Khai báo sử dụng không gian tên std. using namespace std;Khai báo string:// Khai báo một string. string mystring = "Hello World"; // Nếu bạn không khai báo sử dụng namespace std. // Bạn phải sử dụng tên đầy đủ: std::string mystring = "Hello World";Các phương thức của StringDưới đây là danh sách các phương thức của String.

Các hướng dẫn Lập trình C/C++

  • Hướng dẫn lập trình C cho người mới bắt đầu
  • Bắt đầu với C/C++ cần những gì?
  • Cài đặt công cụ phát triển C/C++ cho Eclipse
  • Cài đặt trình biên dịch C/C++ MinGW trên Windows
  • Cài đặt trình biên dịch C/C++ CygWin trên Windows
  • Lớp và đối tượng trong C++
  • Hướng dẫn và ví dụ C/C++ string
Show More

Các hướng dẫn Lập trình C/C++

  • Hướng dẫn lập trình C cho người mới bắt đầu
  • Bắt đầu với C/C++ cần những gì?
  • Cài đặt công cụ phát triển C/C++ cho Eclipse
  • Cài đặt trình biên dịch C/C++ MinGW trên Windows
  • Cài đặt trình biên dịch C/C++ CygWin trên Windows
  • Lớp và đối tượng trong C++
  • Hướng dẫn và ví dụ C/C++ string
Show More

Các bài viết mới nhất

  • Xử lý lỗi 404 trong Flutter GetX
  • Ví dụ đăng nhập và đăng xuất với Flutter Getx
  • Hướng dẫn và ví dụ Flutter NumberTextInputFormatter
  • Hướng dẫn và ví dụ Flutter multi_dropdown
  • Hướng dẫn và ví dụ Flutter flutter_form_builder
  • Hướng dẫn và ví dụ Flutter GetX obs Obx
  • Hướng dẫn và ví dụ Flutter GetX GetBuilder
  • Từ khoá part và part of trong Dart
  • Hướng dẫn và ví dụ Flutter InkWell
  • Bài thực hành Flutter SharedPreferences
  • Hướng dẫn và ví dụ Flutter Radio
  • Hướng dẫn và ví dụ Flutter Slider
  • Hướng dẫn và ví dụ Flutter SkeletonLoader
  • Chỉ định cổng cố định cho Flutter Web trên Android Studio
  • Hướng dẫn và ví dụ Flutter SharedPreferences
  • Tạo Module trong Flutter
  • Flutter upload ảnh sử dụng http và ImagePicker
  • Bài thực hành Dart http CRUD
  • Hướng dẫn và ví dụ Flutter image_picker
  • Flutter GridView với SliverGridDelegate tuỳ biến
Show More
  • Các hướng dẫn Lập trình C/C++

Từ khóa » Cách Copy Chuỗi Trong C++