This is a mobile optimized page that loads fast, if you want to load the real page, click this text.

Hỏi/ Thắc mắc Lấy phần tử của mảng C#?

daithai263

Búa Đá Đôi
cho mình hỏi làm thế nào để chèn kí tự "^_^" vào vị trí thứ 3 trong mảng ạ.
Nhâp vào chuỗi gồm n kí tự
thêm kí tự ^_^ vào vị trí thứ 3

code ở trong chạy được mà hình như sai sai @@ ..
 

daithai263

Búa Đá Đôi
Dùng String.Insert ko nhanh hơn là chuyển nó về mảng à bạn
bạn chèn vô giúp mình được không ạ.. mình chưa học không ràn lệnh đó

string[] mang = txtNhap.Text.Split(' ');
for (int i = 0; i < mang.Length; i++)
{
string bientam = mang;
if (bientam.Length == 2)
{
bientam = bientam + " T_T ";
mang = bientam;
break;
}
txtMaHoa.Text = bientam;

}
 

daithai263

Búa Đá Đôi
nha
nhập chuỗi sau đó mã hóa theo dạng
chuyển chuỗi theo dạng [a->., b->&, c->#, h->?, n->*, u->@], chèn khóa là ^_^ vào vị trí thứ 3
bạn biết dùng lệnh if như nào để nó biết chuõi > 2 chữ mới thêm ^^ vào vị trí thứ 3 không ạ
còn chuỗi = 2 thì chỉ mã hóa thui.


code:
int giayhientai = Int32.Parse(DateTime.Now.ToString("ss"));
txtMaHoa.Text = "";

if (giayhientai < 15)
{
string[] mang = txtNhap.Text.Split(' ');

for (int i = 0; i < mang.Length; i++)
{
if (mang.Length > 2)
{
string bientam = mang;
bientam = "^_^";
mang[2] = mang[2] + bientam;
}
else
break;
}

string noi = string.Join(" ", mang);
noi = noi.Replace("a", ".");
noi = noi.Replace("b", "&");
noi = noi.Replace("c", "#");
noi = noi.Replace("h", "?");
noi = noi.Replace("n", "*");
noi = noi.Replace("u", "@");

MessageBox.Show("Thành công!");
txtMaHoa.Text = noi;
}


// dòng này mình cho for chay mà sai rui @@
for (int i = 0; i < mang.Length; i++)
{
if (mang.Length > 2)
{
string bientam = mang;
bientam = "^_^";
mang[2] = mang[2] + bientam;
}
else
break;
}
 

Handrf

Kiếm đá
nếu theo đề bài bạn có thể viết gọn lại như này. k cần lặp cho đau đầu
C#:
string in = txtMaHoa.Text;
if (in.Length > 2)
    in.insert(3,"^_^");
in.replace('a', '.');
// something else
txtMaHoa.Text = in;
 

Handrf

Kiếm đá
Mình có sửa lại code của bạn một chút. bạn xem thử

C#:
            int giayhientai = Int32.Parse(DateTime.Now.ToString("ss"));
            txtOut.Text = "";
            giayhientai = 1;
            if (giayhientai < 15)
            {
                string[] mang = txtIn.Text.Split(' ');

                if (mang.Length > 2)
                    mang[2] = "^_^ " + mang[2];

                string noi = string.Join(" ", mang);
                noi = noi.Replace("a", ".");
                noi = noi.Replace("b", "&");
                noi = noi.Replace("c", "#");
                noi = noi.Replace("h", "?");
                noi = noi.Replace("n", "*");
                noi = noi.Replace("u", "@");

                MessageBox.Show("Thành công!");
                txtOut.Text = noi;
            }
 

daithai263

Búa Đá Đôi
ĐƯỢC rồi ạ,, cảm ơn bác nhiều nha )
đơn giản vậy nãi giờ ngồi if for rùi while tùm lum k ra :V
 

daithai263

Búa Đá Đôi
từ 16-40: chuyển chuỗi theo dạng [t->/, o->+, s->%, i->@, p->!, h->:], chèn khóa là T_T vào vị trí thứ 2
if (mang.Length == 0)
mang[0] = mang[0] + "T_T";
trường hợp này đặt length ==0 sau không ra ạ?
 

Handrf

Kiếm đá
thì mang.Length == 0 tức là mảng k có phần tử nào, nếu truy cập mang[0] sẽ bị lỗi. giả sử nếu truy cập được mang[0] tức là mang.Length đã >= 1 rồi