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? Show
Giải phápCó hai chức năng có sẵn để chuyển đổi. Họ là -
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ápsscanf (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 raDay = 02 Month = 01 Year = 2010 Chuyển đổi số thành chuỗiChúng ta có thể chuyển đổi chuỗi thành số bằng cách sử dụng hàm sprintf() - cú phápsprintf ( 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 raToday’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 atoihà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Đầ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 atoiTrong 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ápCú 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êntrả lạiHà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 CTrong 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
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ọcBê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ó
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
Mục trên là toán tử ép kiểu. Hãy xem ví dụ này
Đâ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
ví dụ 1. Chương trình chuyển đổi thủ công một chuỗi thành một số nguyênDướ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 552555365475558Cá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
Ban đầu, trong chương trình này, chúng tôi bao gồm stdio. h và chuỗi. h từ thư viện chuẩn C. Điều này cho phép chúng tôi sử dụng các chức năng là một phần của các tệp tiêu đề này. Ngôn ngữ lập trình C không tự động bao gồm các chức năng như thế này. Bạn phải nhập chúng vào phần mềm của bạn để sử dụng chúng Hàm main thực thi chương trình C. Do đó, bắt buộc phải có một trong mọi chương trình C. Mã chương trình được viết trong dấu ngoặc nhọn của hàm main Bên trong hàm chính, trước tiên chúng ta xác định và khai báo các biến khác nhau cùng với kiểu dữ liệu của chúng. Các biến i, len, result được khai báo theo kiểu dữ liệu số nguyên. Biến kết quả được khởi tạo bằng 0 Hàm printf() sau đó được gọi để hiển thị thông báo “nhập một số” trên màn hình đầu ra. get(num) sẽ đọc số đầu vào và lưu nó dưới dạng chuỗi. Trong trường hợp này, chuỗi là một mảng các ký tự được trỏ tới bởi num. Sau đó, chúng ta tính độ dài của chuỗi bằng hàm strlen() Có thể bạn quan tâmTiếp theo, chúng tôi lặp qua chuỗi và chuyển đổi chuỗi thành giá trị thập phân. Cuối cùng chuỗi được chuyển thành số nguyên và in ra màn hình ví dụ 2. Chương trình chuyển đổi một chuỗi thành một số nguyên bằng hàm atoi()Hàm atoi() chuyển đổi kiểu dữ liệu chuỗi thành kiểu dữ liệu số nguyên trong ngôn ngữ C. Cú pháp của hàm này là
Ở đây, str là kiểu con trỏ tới một ký tự. Từ khóa const làm cho các biến không thể sửa đổi. Hàm này trả về một giá trị nguyên sau khi thực hiện. Chúng tôi bao gồm stdlib. h vì đó là nơi chứa hàm atoi(). Tệp tiêu đề này chứa tất cả các hàm truyền kiểu được sử dụng trong ngôn ngữ C
Lưu ý rằng giá trị chuỗi được sử dụng với hàm này phải là một chuỗi ký tự có thể hiểu được dưới dạng giá trị số. Hàm sẽ ngừng đọc đầu vào khi gặp ký tự không phải là số. Vì vậy, nếu chúng tôi thay đổi mã ở trên để trông như thế này
Chương trình trên sẽ in ra. “giá trị nguyên của chuỗi là 99” Hàm atoi cũng bỏ qua mọi ký tự khoảng trắng ở đầu, nhưng nếu gặp phải bên trong chuỗi, nó sẽ dừng xử lý chuỗi. Nó cũng sẽ trả về 0 nếu không thể chuyển đổi chuỗi thành số nguyên. Nếu có tràn, nó sẽ trả về undefined. Hàm atoi cũng không nhận dạng số thập phân hoặc số mũ. Vì vậy, bạn sẽ phải viết mã của mình để giải thích cho thực tế là atoi chỉ âm thầm thất bại thay vì đưa ra lỗi khi nó không thể chuyển đổi một chuỗi thành một số nguyên. Và thực tế là hàm trả về 0 khi chuyển đổi không hoạt động có thể khó xử lý vì đó là một số nguyên hợp lệ ví dụ 3. Chương trình chuyển đổi một chuỗi thành một số nguyên bằng hàm sscanf()Hàm sscanf() hoạt động hơi khác một chút. Nó đọc văn bản được định dạng từ một chuỗi đầu vào. Điều này tương tự như hàm sscanf(), nhưng sscanf() có thể đọc dữ liệu đầu vào từ một chuỗi thay vì bảng điều khiển. Đây là phần khai báo cho hàm sscanf()
Tham số đầu tiên là chuỗi bạn muốn phân tích cú pháp. Tham số thứ hai là định dạng bạn muốn áp dụng cho chuỗi. Bạn có thể thêm bao nhiêu tham số mà hàm có thể nhận để lưu trữ giá trị được đọc từ con trỏ. Ở đây, nếu một biến thông thường lưu trữ giá trị thay vì một con trỏ, thì tên biến phải theo sau dấu & Tham số định dạng nhận một loại giá trị cụ thể được gọi là trình xác định định dạng định dạng dữ liệu trong tham số chuỗi theo một cách cụ thể. Mỗi ký tự xác định định dạng phải đứng trước ký tự %. Dưới đây là các thông số định dạng bạn có thể sử dụng SymbolTypeschuỗický tự đơndSố nguyên thập phân, E, f, g, Số nguyên không dấu dấu phẩy động, Số thập lục phânMức tối thiểu cho một trình xác định định dạng là ký hiệu % và một trong các ký tự ở trên. Chúng ta có thể sử dụng ký hiệu cho số nguyên thập phân hoặc số nguyên không dấu, tùy thuộc vào những gì chúng ta muốn thực hiện. Thật tốt khi lưu ý rằng chúng ta thực sự có thể sử dụng hàm này để chuyển đổi một số thập phân, điều mà hàm atoi() không thể làm được. Đối với điều đó, chúng ta có thể sử dụng “%d. ” Nhưng một bộ xác định định dạng có thể chứa nhiều thông tin hơn thế. Đây là nguyên mẫu của nó
Ở đây chúng ta thấy ký tự đầu tiên là ký hiệu %. Tiếp theo là dấu hoa thị tùy chọn, cho biết dữ liệu sẽ được đọc từ chuỗi nhưng bị bỏ qua. Tiếp theo là giá trị chiều rộng, chỉ định số lượng ký tự tối đa bạn muốn đọc từ chuỗi Đây là một ví dụ trong mã sử dụng chiều rộng
Trong hàm trên, chúng ta tạo một chuỗi chứa “1234” và khởi tạo một biến số nguyênValue để giữ số nguyên mà chúng ta sẽ phân tích cú pháp ra khỏi chuỗi. Tiếp theo là hàm sscanf(). Tham số đầu tiên là chuỗi của chúng ta và tham số cuối cùng là một con trỏ tới số nguyên mà chúng ta vừa khởi tạo. Tham số định dạng cho biết hàm chúng tôi muốn phân tích một số thập phân từ chuỗi và chúng tôi chỉ muốn bốn ký tự. Kết quả của việc chạy nó là Giá trị số nguyên là. 1234 Nhưng chúng ta có thể xóa giá trị chiều rộng ở định dạng như bên dưới và nhận được kết quả tương tự 0Ví dụ 4. Chương trình chuyển đổi một chuỗi thành một số nguyên bằng hàm strtol()Hàm strlol() trong C chuyển đổi một chuỗi thành một số nguyên dài. Đây là số nguyên 64 bit. Số nguyên tiêu chuẩn là 32 bit. Đây là một chức năng tốt để sử dụng nếu bạn muốn chuyển đổi các chuỗi chứa số dài. Nó hoạt động tương tự như hàm atoi(). Nó bỏ qua bất kỳ khoảng trắng nào ở đầu chuỗi, nhưng nó sẽ ngừng xử lý chuỗi khi gặp khoảng trắng hoặc bất kỳ ký tự nào khác trong chuỗi Đây là cú pháp của hàm strlol() 1Tham số đầu tiên là một con trỏ tới chuỗi mà bạn muốn chuyển đổi. Tham số thứ hai là một con trỏ được sử dụng bởi hàm trỏ đến ký tự không phải số nguyên đầu tiên mà hàm chạy vào khi dừng xử lý. Tham số cuối cùng là cơ sở của số được chuyển đổi. Nó có thể là một số từ 2 đến 32 hoặc một giá trị đặc biệt là 0 Đây là một chương trình sẽ chuyển đổi một chuỗi thành một số nguyên dài 2Khi bắt đầu hàm main ở trên, chúng ta khởi tạo ba biến mà chúng ta sẽ cần để chứng minh hàm strlol(). một chuỗi, một con trỏ và một số nguyên dài. Sau đó, chúng tôi đặt giá trị của chuỗi thành ” 12345″ với khoảng trắng ở đầu để chứng minh rằng hàm sẽ loại bỏ khoảng trắng ở đầu. Sau đó, chúng tôi chuyển chuỗi và con trỏ tới strlol() cùng với 10 làm tham số cuối cùng vì chúng tôi đang phân tích các số thập phân có cơ số là 10. Kết quả của hàm là giá trị số nguyên dài là 12345 Ví dụ 5. Chương trình chuyển đổi một chuỗi thành một số nguyên bằng hàm strtoumax()Hàm strtoumax() trong C rất giống với hàm strlol() nhưng chúng trả về giá trị intmax_t, đây là loại số nguyên lớn nhất có thể có trong C. Cú pháp của nó thậm chí giống nhau 3Và đây là một ví dụ sử dụng hàm strtoumax 4Hàm này tương tự như hàm chúng ta đã viết cho hàm strlol(). Đây là kết quả của chương trình này giá trị số nguyên là 98765 Thậm chí nhiều cách hơn để chuyển đổi một chuỗi thành một số nguyên trong CĐây không phải là những hàm duy nhất bạn có thể sử dụng trong C để chuyển đổi chuỗi thành số nguyên. Nó thực sự là một ngôn ngữ linh hoạt và cung cấp cho bạn rất nhiều lựa chọn. Đây là những chức năng khác
Phần kết luậnNgay cả khi có giá trị số trong một chuỗi, bạn không thể thực hiện bất kỳ phép tính nào trên chuỗi đó bằng ngôn ngữ lập trình C trừ khi trước tiên bạn chuyển đổi nó thành số nguyên. May mắn thay, có rất nhiều cách để làm điều này với thư viện chuẩn C. Bạn có thể viết hàm của riêng mình hoặc sử dụng một trong nhiều hàm chuyển đổi có sẵn đi kèm với C. Mỗi hàm chuyển đổi số nguyên hơi khác nhau, vì vậy hàm bạn sử dụng tùy thuộc vào kích thước của số nguyên bạn sẽ phân tích cú pháp và bạn sẽ làm gì với nó Trang được cập nhật lần cuối. Tháng 10 năm 2021 Bài viết được đề xuấtPhát triển Lập trình hướng đối tượng trong C. Một cái nhìn tổng quanPhát triển Chức năng quét C. Nhận đầu vào của người dùng bằng ngôn ngữ CPhát triển Tổng quan về tệp C dành cho lập trình viênPhát triển strlen C. đếm chuỗiPhát triển Tính kích thước của các loại dữ liệu trong C bằng SizeofPhát triển Vectơ trong C. Hướng dẫn nhanh để tạo các vectơ của riêng bạn trong CPhát triển Định dạng chuỗi C – Hướng dẫn cho người mới bắt đầuPhát triển Bắt đầu với Phương pháp C FopenPhát triển Chương trình C để chuyển đổi định dạng thập phân sang nhị phân (và ngược lại)Phát triển Trình biên dịch C cho MacChia sẻ bài viết này
Các khóa học hàng đầu về C (ngôn ngữ lập trình)Khóa học lập trình C nâng cao Học viện lập trình của Tim Buchalka, Jason Fedin 4. 4 (3,085) Lập Trình C Cho Người Mới Bắt Đầu - Làm Chủ Ngôn Ngữ C Học viện lập trình của Tim Buchalka, Jason Fedin 4. 3 (28,811) Người bán hàng giỏi nhất Bootcamp lập trình C - Khóa học ngôn ngữ C hoàn chỉnh Vlad Budnitski 4. 5 (5,209) Người bán hàng giỏi nhất Lập trình C cho người mới bắt đầu - Nền tảng vững chắc Panagiotis Gnafakis 4. 5 (106) Danh sách liên kết với C Các khóa học danh mục đầu tư 4. 9 (53) Lập trình C Chương trình đào tạo 360°. Không để anh hùng Phòng thí nghiệm Electrovert 4. 8 (43) Tin nóngKhóa đào tạo lập trình C++ nâng cao kỹ năng vô hạn 4. 6 (830) Lập trình C từng bước - Hướng dẫn hoàn chỉnh cho người mới bắt đầu Shibaji Paul 4. 3 (2,913) Học lập trình C++ bằng cách làm trò chơi Serge Lansiquot 4. 2 (497) Nắm vững ngôn ngữ lập trình C Sagar Uppuluri 4. 3 (611) Xây dựng phần mềm độc hại không thể phát hiện bằng ngôn ngữ C. hack đạo đức Aleksa Tamburkovski, Joe Parys 4. 5 (1.100) Người bán hàng giỏi nhất Bootcamp lập trình C hoàn chỉnh Byte Garage, Giảng viên Byte Garage 4. 3 (1,007) >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ọcC++ 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 |