Mảng int thành mảng Char C++

Điều này khai báo một mảng với kích thước được chỉ định, được đặt tên là tên biến, thuộc loại tên_kiểu. Mảng được lập chỉ mục từ 0 đến size-1. Kích thước (trong ngoặc) phải là một số nguyên hoặc một biến cố định. Trình biên dịch sử dụng kích thước để xác định lượng không gian cần phân bổ (i. e. bao nhiêu byte)

ví dụ

  int list[30];            // an array of 30 integers 
  char name[20];           // an array of 20 characters 
  double nums[50];         // an array of 50 decimals 
  int table[5][10];        // a two dimensional array of integers 

Ví dụ cuối cùng minh họa một mảng hai chiều (mà chúng ta thường nghĩ về nó như một bảng). Chúng tôi thường nghĩ kích thước đầu tiên là hàng và kích thước thứ hai là cột, nhưng điều đó thực sự không quan trọng, miễn là bạn nhất quán. Vì vậy, chúng ta có thể coi phần khai báo cuối cùng là một bảng có 5 hàng và 10 cột chẳng hạn

Khởi tạo mảng

Với các biến thông thường, chúng ta có thể khai báo trên một dòng, sau đó khởi tạo ở dòng tiếp theo.
  int x; 
  x = 0; 

Hoặc, chúng ta có thể chỉ cần khởi tạo biến trong chính câu lệnh khai báo

  int x = 0; 

Chúng ta có thể làm tương tự cho mảng không? . Chỉ cần liệt kê các giá trị mảng (chữ) trong ký hiệu tập hợp { } sau khi khai báo. Dưới đây là một số ví dụ

  int list[4] = {2, 4, 6, 8}; 
  char letters[5] = {'a', 'e', 'i', 'o', 'u'}; 
  double numbers[3] = {3.45, 2.39, 9.1}; 
  int table[3][2] = {{2, 5} , {3,1} , {4,9}}; 

chuỗi kiểu C

Mảng kiểu char là trường hợp đặc biệt
  • Chúng tôi sử dụng chuỗi thường xuyên, nhưng không có loại chuỗi tích hợp sẵn trong ngôn ngữ
  • Chuỗi kiểu C được triển khai dưới dạng một mảng kiểu char kết thúc bằng một ký tự đặc biệt, được gọi là "ký tự null"
    • Ký tự null có giá trị ASCII 0
    • Ký tự null có thể được viết dưới dạng ký tự bằng mã theo cách này. '\0'
  • Mỗi chuỗi ký tự (một cái gì đó trong dấu ngoặc kép) hoàn toàn chứa ký tự null ở cuối

Vì các mảng ký tự được sử dụng để lưu trữ các chuỗi kiểu C, nên bạn có thể khởi tạo một mảng ký tự bằng một chuỗi ký tự (i. e. một chuỗi trong dấu ngoặc kép), miễn là bạn chừa chỗ cho ký tự null trong khoảng trống được phân bổ

  char name[7] = "Johnny";

Lưu ý rằng điều này sẽ tương đương với

  char name[7] = {'J', 'o', 'h', 'n', 'n', 'y', '\0'};

Các biến thể trong khởi tạo

Khai báo mảng phải chứa thông tin về kích thước của mảng. Có thể để kích thước ngoài [ ] trong khai báo miễn là bạn khởi tạo mảng nội dòng, trong trường hợp đó, mảng được tạo vừa đủ lớn để thu thập dữ liệu đã khởi tạo. ví dụ

  char name[] = "Johnny";        // size is 7
  int list[] = {1, 3, 5, 7, 9};  // size is 5

Một lối tắt khác với bộ khởi tạo là sử dụng ít phần tử hơn kích thước chỉ định. Các phần tử còn lại sẽ mặc định là 0. Việc sử dụng một tập hợp chứa nhiều phần tử hơn kích thước được phân bổ là bất hợp pháp

  int list[5] = {1, 2};         // array is {1, 2, 0, 0, 0}
  int nums[3] = {1, 2, 3, 4};   // illegal declaration.

Ghi chú. Sử dụng bộ khởi tạo trong khai báo, như trong các ví dụ trên, có lẽ sẽ không được như mong muốn với các mảng rất lớn.
Một cách phổ biến khác để khởi tạo mảng -- với vòng lặp for.
Ví dụ này khởi tạo mảng numList thành {0, 2, 4, 6, 8, 10, 12, 14, 16, 18}.

  int numList[10];
  int i;
  for (i = 0; i < 10; i++)
     numList[i] = i * 2;

Sử dụng mảng

Khi các mảng của bạn được khai báo, bạn truy cập các phần tử trong một mảng với tên mảng và số chỉ mục bên trong dấu ngoặc [ ]. Nếu một mảng được khai báo là. typeName varName[size], thì phần tử có chỉ số n được gọi là varName[n]. ví dụ.
  int list[30];            // an array of 30 integers 
  char name[20];           // an array of 20 characters 
  double nums[50];         // an array of 50 decimals 
  int table[5][10];        // a two dimensional array of integers 
0

Tuy nhiên, sẽ không thích hợp nếu sử dụng chỉ mục mảng nằm ngoài giới hạn của chỉ mục mảng hợp lệ

  int list[30];            // an array of 30 integers 
  char name[20];           // an array of 20 characters 
  double nums[50];         // an array of 50 decimals 
  int table[5][10];        // a two dimensional array of integers 
1

Tuyên bố trên là cú pháp pháp lý, tuy nhiên. Công việc của lập trình viên là đảm bảo rằng các chỉ số ngoài giới hạn không được sử dụng. Đừng trông đợi vào trình biên dịch để kiểm tra nó cho bạn -- nó sẽ không

Sao chép mảng

Nếu chúng ta có hai mảng này, làm cách nào để sao chép nội dung của list2 sang list1?
  int list[30];            // an array of 30 integers 
  char name[20];           // an array of 20 characters 
  double nums[50];         // an array of 50 decimals 
  int table[5][10];        // a two dimensional array of integers 
2

Với các biến, chúng tôi sử dụng câu lệnh gán, vì vậy đây sẽ là xu hướng tự nhiên -- nhưng điều đó là sai

  int list[30];            // an array of 30 integers 
  char name[20];           // an array of 20 characters 
  double nums[50];         // an array of 50 decimals 
  int table[5][10];        // a two dimensional array of integers 
3

Chúng ta phải sao chép giữa các phần tử của mảng theo phần tử. Tuy nhiên, vòng lặp for giúp việc này trở nên dễ dàng

  int list[30];            // an array of 30 integers 
  char name[20];           // an array of 20 characters 
  double nums[50];         // an array of 50 decimals 
  int table[5][10];        // a two dimensional array of integers 
4

I/O đơn giản với chuỗi.

Trong trường hợp đặc biệt của chuỗi (mảng ký tự kết thúc null), chúng có thể được sử dụng như mảng bình thường. Truy cập một phần tử mảng có nghĩa là truy cập một ký tự.
  int list[30];            // an array of 30 integers 
  char name[20];           // an array of 20 characters 
  double nums[50];         // an array of 50 decimals 
  int table[5][10];        // a two dimensional array of integers 
5

Chuỗi cũng có thể là đầu ra và đầu vào toàn bộ, với các đối tượng đầu vào và đầu ra tiêu chuẩn (cin và cout).
Dòng sau xuất ra từ "Xin chào".

  int list[30];            // an array of 30 integers 
  char name[20];           // an array of 20 characters 
  double nums[50];         // an array of 50 decimals 
  int table[5][10];        // a two dimensional array of integers 
6Hãy cẩn thận chỉ sử dụng điều này trên các mảng char đang được sử dụng làm chuỗi kiểu C. (Điều này có nghĩa là, chỉ khi ký tự null xuất hiện dưới dạng dấu kết thúc)

Dòng sau đây cho phép nhập một từ (tối đa 19 ký tự và ký tự null kết thúc) từ bàn phím, từ này được lưu trữ trong mảng word1

  int list[30];            // an array of 30 integers 
  char name[20];           // an array of 20 characters 
  double nums[50];         // an array of 50 decimals 
  int table[5][10];        // a two dimensional array of integers 
7

Các ký tự được đọc từ bàn phím cho đến khi bắt gặp ký tự "khoảng trắng" (dấu cách, tab, dòng mới, v.v.) đầu tiên. Đầu vào được lưu trữ trong mảng ký tự và ký tự null được tự động thêm vào

Làm cách nào để chuyển đổi mảng int thành mảng char trong c?

Trong ngôn ngữ C, itoa( ) được dùng để chuyển đổi một số nguyên thành chuỗi ( mảng ký tự ) Cú pháp. char * itoa ( int value, char * str, int base );

Làm cách nào để chuyển đổi một int thành một char trong c?

Một ký tự trong C đã là một số (mã ASCII của ký tự), không cần chuyển đổi. Nếu bạn muốn chuyển đổi một chữ số thành ký tự tương ứng, bạn chỉ cần thêm '0'. c = i +'0'; '0' là một ký tự trong bảng ASCll.

Bạn có thể chuyển đổi int thành char không?

Chúng ta có thể chuyển đổi int thành char trong java bằng cách sử dụng typecasting. Để chuyển đổi kiểu dữ liệu cao hơn thành thấp hơn, chúng ta cần thực hiện typecasting. Ở đây, ký tự ASCII của giá trị số nguyên sẽ được lưu trữ trong biến char. Để lấy giá trị thực trong biến char, bạn có thể thêm '0' với biến int

Làm cách nào để chuyển đổi mảng int thành chuỗi trong c?

Hàm tostring() dùng để chuyển đổi một số nguyên thành chuỗi & ngược lại. Sử dụng hàm tostring() chuyển đổi một số nguyên thành chuỗi. Gán giá trị của biến 'num' cho biến 'n'. Vòng lặp While dùng để kiểm tra giá trị của biến 'n' có bằng 0 không.