Hàm chuyển chuỗi thành số trong C++

Vấn đề

Bạn có ý nghĩa gì khi chuyển đổi Chuỗi thành số và số thành chuỗi trong ngôn ngữ lập trình C?

Giải pháp

Có hai chức năng có sẵn để chuyển đổi. Họ là -

  • sscanf[] − chuyển đổi chuỗi thành số
  • sprintf[] – được sử dụng để chuyển đổi số thành chuỗi

Chuyển đổi chuỗi thành số

Chúng ta có thể chuyển đổi chuỗi thành số bằng hàm sscanf[] −

cú pháp

sscanf [string name, “control string”,variable list]

Thí dụ

#include
main []{
   char a[20] = “02 01 2010”;
   int day, mon, yr;
   clrscr[];
   sscanf [a, “%d%d %d”, &day, &mon, &yr];
   printf [ “Day =%d”, day];
   printf [ “Month = %d”, mon];
   printf [ “Year = %d”, yr];
   getch [];
}

đầu ra

Day = 02
Month = 01
Year = 2010

Chuyển đổi số thành chuỗi

Chúng ta có thể chuyển đổi chuỗi thành số bằng cách sử dụng hàm sprintf[] -

cú pháp

sprintf [ string name, “control string”, variable list]

Thí dụ

#include
main []{
   char a[50];
   int day,mon,yr;
   day = 02;
   mon = 01;
   yr = 2010;
   crlscr[];
   sprintf [a, “%d/%d/%d”, day, mon, yr];
   printf [ “today’s date =%s”,a];
   getch [];
}

đầu ra

Today’s date is 02/01/2010.

Trong chương trình C này, chúng ta sẽ chuyển đổi một chuỗi thành số nguyên bằng cách sử dụng hàm atoi và sử dụng một hàm do người dùng định nghĩa. Để chuyển đổi chuỗi thành số nguyên, trước tiên chúng tôi lấy một chuỗi làm đầu vào từ người dùng bằng hàm get. Chuỗi đầu vào phải bao gồm các chữ số ['0' đến '9'] và dấu trừ ['-'] cho các số âm. Nó có thể chứa một số ký tự không phải số như bảng chữ cái, nhưng ngay khi chúng tôi thấy bất kỳ ký tự không phải số nào, chúng tôi sẽ dừng chuyển đổi và trả về số nguyên đã chuyển đổi cho đến bây giờ

Ví dụ
Chuỗi đầu vào. "12345"
Đầu ra số nguyên. 12345

Chuỗi đầu vào. "-123abcd"
Đầu ra số nguyên. -123

Chương trình C để chuyển đổi một chuỗi thành số nguyên bằng hàm atoi

hàm atoi được định nghĩa bên trong stdlib. tập tin tiêu đề h. Hàm atio chuyển đổi tham số chuỗi thành số nguyên. Nếu không có chuyển đổi hợp lệ nào tồn tại cho chuỗi đó thì nó sẽ trả về 0. Đây là phần khai báo cho hàm atoi[]

int atoi[const char *str];

#include 
#include 

int main[]{
    char inputString[20];
    printf["Enter a String\n"];
    gets[inputString];

    printf["Integer: %d \n", atoi[inputString]];

    return 0;
}
Đầu ra
Enter a String
2014
Integer: 2014
Enter a String 
-2000abcd
Integer: -2000

Chương trình C để chuyển đổi một chuỗi thành số nguyên mà không cần sử dụng hàm atoi

Trong chương trình này, chúng tôi chuyển đổi một chuỗi thành số nguyên mà không sử dụng hàm atoi. Trước tiên, chúng tôi kiểm tra xem inputString[0] có phải là '-' hay không để xác định các số âm. Sau đó, chúng tôi chuyển đổi từng ký tự số ['0' thành '9'] thành chữ số tương đương và nối nó vào số nguyên đã chuyển đổi. Sau đó, chúng tôi nhân số nguyên đã chuyển đổi với -1 hoặc 1 dựa trên việc chuỗi đầu vào chứa số âm hay số dương. Cuối cùng, nó in số nguyên ra màn hình bằng hàm printf

Hàm atoi bỏ qua tất cả các ký tự khoảng trắng ở đầu chuỗi, chuyển đổi các ký tự tiếp theo thành một phần của số rồi dừng khi gặp ký tự đầu tiên không phải là số

cú pháp

Cú pháp của hàm atoi trong ngôn ngữ C là

int atoi[const char *nptr];

Tham số hoặc Đối số

nptrA con trỏ tới một chuỗi để chuyển đổi thành một số nguyên

trả lại

Hàm atoi trả về biểu diễn số nguyên của một chuỗi. Hàm atoi bỏ qua tất cả các ký tự khoảng trắng ở đầu chuỗi, chuyển đổi các ký tự tiếp theo thành một phần của số rồi dừng khi gặp ký tự đầu tiên không phải là số

Dennis Ritchie đã tạo ra ngôn ngữ lập trình C vào năm 1972. Ngôn ngữ này có nguồn gốc từ ngôn ngữ B, được phát hành vào năm 1970. Trong số các phần mềm khác, Linux và MySQL được viết bằng C. Bởi vì nó quá đơn giản nhưng lại rất mạnh mẽ, C đã ảnh hưởng đến nhiều ngôn ngữ lập trình

Ví dụ, C ++ là ngôn ngữ lập trình bắt nguồn trực tiếp từ C. C là một ngôn ngữ lập trình có mục đích chung, có cấu trúc và thủ tục. Có một số trình biên dịch C có sẵn để chuyển đổi mã C sang ngôn ngữ máy trên nhiều nền tảng phần cứng. Lập trình hệ thống sử dụng C vì các chương trình của nó nhanh và có thể xử lý các tác vụ cấp thấp. Bản thân ngôn ngữ đã được viết bằng hợp ngữ

Chúng ta sẽ xem xét các cách chuyển đổi chuỗi thành số nguyên [giá trị số] bằng ngôn ngữ lập trình C trong hướng dẫn dành cho người mới bắt đầu này. Bạn nên làm quen với những điều cơ bản của lập trình.  

Tổng quan về chuỗi trong C

Trong ngôn ngữ C, chuỗi là kiểu dùng để lưu trữ bất kỳ văn bản nào, bao gồm cả chữ và số và ký tự đặc biệt. Bên trong, nó được biểu diễn dưới dạng một mảng các ký tự. Người ta kết thúc một chuỗi trong C bằng ký tự NULL, đó là lý do tại sao chúng được gọi là “chuỗi kết thúc null”. ” Để biểu diễn một chuỗi trong C, đặt nó trong dấu ngoặc kép

Lập trình C cho người mới bắt đầu

Cập nhật lần cuối tháng 8 năm 2019

  • 76 bài giảng
  • Tất cả các cấp

4. 4 [4,106]

Học C trong mười bước đơn giản trên Windows, Mac OS X hoặc Linux. Tác giả Huw Collingbourne

Khám phá khóa học

Bên trong, một chuỗi được biểu diễn bằng C như thế này, trong đó \0 là ký tự null

t. h. tôi. S.   . một.   . S. t. r. tôi. N. g. \0

Nhiều chương trình C sử dụng chuỗi và các thuộc tính liên quan. Tệp tiêu đề cần thiết cho các hàm chuỗi là chuỗi. h. Các thao tác có thể thực hiện trên chuỗi bao gồm tính toán độ dài chuỗi, nối nhiều chuỗi, so sánh nhiều chuỗi và sao chép chuỗi. Dưới đây là một ví dụ về việc tạo một chuỗi trong C và một số phương thức của nó

#include 
#include 

int main [] {

   char string1[12] = "Hello";
   char string2[12] = "World";
   char string3[12];
   int  len ;

   /* copies string1 into string3 */
   strcpy[string3, string1];
   printf["strcpy[ string3, string1] :  %s\n", string3 ];

   /* concatenates string1 and string2 */
   strcat[ string1, string2];
   printf["strcat[ string1, string2]:   %s\n", string1 ];

   /* total lenghth of string1 after concatenation */
   len = strlen[string1];
   printf["strlen[string1] :  %d\n", len ];

   return 0;
}

Chuyển đổi kiểu là gì?

Nhiều khi trong các chương trình C, các biểu thức chứa các biến và hằng thuộc các kiểu dữ liệu khác nhau. Để phục vụ cho mục đích tính toán, chúng phải chuyển đổi về cùng kiểu dữ liệu. Chuyển đổi kiểu dữ liệu này sang kiểu dữ liệu khác được gọi là chuyển đổi kiểu

Trong C, chúng tôi có hai loại chuyển đổi loại

  1. Chuyển đổi loại ngầm định. Trình biên dịch thực hiện việc này một cách tự động. Lập trình viên không đóng bất kỳ vai trò nào ở đây
  2. Chuyển đổi loại rõ ràng. Ở đây lập trình viên chịu trách nhiệm chuyển đổi kiểu. Điều này còn được gọi là đánh máy. Cú pháp như sau
[datatype] expression;

Mục trên là toán tử ép kiểu. Hãy xem ví dụ này

char a;
int b;
a = [char]b;

Đây là một cách đơn giản để chuyển đổi một số nguyên thành một loại ký tự. Ở đây, “a” là kiểu dữ liệu ký tự và b là kiểu dữ liệu số nguyên. Không thể gán giá trị của biến b cho biến a vì chúng khác kiểu dữ liệu. Vì vậy, chúng tôi đánh máy số nguyên b thành ký tự trong ví dụ này. Bây giờ, cả a và b đều thuộc kiểu dữ liệu ký tự

Cách chuyển chuỗi thành số nguyên trong ngôn ngữ C

Đôi khi, một số được nhập dưới dạng một chuỗi. Để sử dụng nó cho bất kỳ phép toán nào, chúng ta phải chuyển đổi chuỗi thành số nguyên. Có một số cách chuyển đổi chuỗi thành giá trị số nguyên bằng C

  1. Phương pháp đầu tiên là chuyển đổi thủ công chuỗi thành số nguyên bằng mã tùy chỉnh
  2. Phương pháp thứ hai là sử dụng hàm atoi có trong thư viện chuẩn C
  3. Phương pháp thứ ba là sử dụng hàm sscanf có trong thư viện chuẩn C
  4. Phương thức thứ tư sử dụng hàm strtol[] có trong thư viện chuẩn C
  5. Phương pháp thứ năm sử dụng hàm strtoumax[] có trong thư viện chuẩn C

ví dụ 1. Chương trình chuyển đổi thủ công một chuỗi thành một số nguyên

Dưới đây là danh sách các ký tự ASCII [Mã tiêu chuẩn Mỹ để trao đổi thông tin] và giá trị thập phân của chúng

Ký tự ASCII                                                     Giá trị thập phân0                                                      481                                                      492                                                                                                                                                                                                                                                                                                                                                                                                                                                                           552555365475558

Các số được lưu trữ trong một chuỗi theo giá trị ký tự ASCII của chúng. Vì vậy, chúng tôi phải làm toán để truy xuất một giá trị mà chúng tôi có thể sử dụng làm số nguyên. Để có được giá trị thập phân của mỗi phần tử chuỗi, chúng ta phải trừ nó bằng giá trị thập phân của ký tự “0. Đây là một ví dụ để làm cho điều này rõ ràng hơn

#include 
#include 

main[] {
  char num[50];
  int  i, len;
  int result = 0;
  
  printf["Enter a number: "];
  gets[num];
  len = strlen[num];

	for[i=0; i

Các khóa học C [ngôn ngữ lập trình] khác

C [ngôn ngữ lập trình] sinh viên cũng học

C++ Cấu trúc dữ liệu Thuật toán Lập trình C# Cơ bản Unreal Engine Phát triển trò chơi Nguyên tắc cơ bản Lập trình hướng đối tượng C nhúng Vi điều khiển Unity Phát triển phần mềm Phỏng vấn viết mã Hệ thống nhúng

Trao quyền cho nhóm của bạn. Dẫn đầu ngành

Đăng ký thư viện các khóa học trực tuyến và công cụ học tập kỹ thuật số cho tổ chức của bạn với Udemy Business

Hàm nào chuyển đổi một chuỗi thành một số nguyên?

Hàm atoi[] chuyển đổi một chuỗi ký tự thành một giá trị số nguyên. Chuỗi đầu vào là một chuỗi các ký tự có thể được hiểu là một giá trị số của kiểu trả về được chỉ định. Hàm dừng đọc chuỗi đầu vào ở ký tự đầu tiên mà nó không thể nhận ra là một phần của số.

Hàm nào chuyển đổi giữa chuỗi và số?

Chuyển đổi chuỗi thành số . Val function to explicitly convert the digits in a string to a number.

Làm cách nào để chuyển đổi ký tự thành số trong C?

Có 3 cách chuyển từ char sang int trong ngôn ngữ C như sau. Sử dụng Typecasting. Sử dụng sscanf[] .
Khai báo và khởi tạo ký tự của chúng ta sẽ được chuyển đổi
Đánh máy ký tự để chuyển đổi ký tự thành int bằng cách sử dụng int
In số nguyên bằng printf

Làm cách nào để chuyển đổi chuỗi thành số và số thành chuỗi trong C?

Giải pháp .
sscanf[] − chuyển đổi chuỗi thành số
sprintf[] – được sử dụng để chuyển đổi số thành chuỗi

Chủ Đề