cuốn sách gpt4 ai đã làm

Đang cố gắng xóa tất cả các số khỏi một chuỗi trong C

In lại Tác giả: Vũ trụ không gian Thời gian cập nhật: 2023-11-04 02:00:08 26 4
mua khóa gpt4 Nike

Tôi đang cố gắng lấy tất cả các số ra khỏi một chuỗi (char*)...

Đây là những gì tôi có bây giờ:

    // Xóa số khỏi tên người dùng nếu chúng tồn tại - đừng quan tâm đến những điều này
char * newStr;
strtoul(người dùng, &newStr, 10);
người dùng = newStr;

Sự hiểu biết của tôi là strtoul có nhiệm vụ chuyển đổi một chuỗi thành một chuỗi dài không dấu. Các ký tự không phải là số sẽ được đưa vào con trỏ được truyền vào (tham số thứ hai). Khi tôi gán lại người dùng cho newStr và in nó, chuỗi vẫn giữ nguyên. Tại sao lại thế này? Có ai biết một cách tốt hơn?

Ví dụ từ tài liệu:

#include 
#include

int main()
{
char str[30] = "2030300 Đây là bài kiểm tra";
char *ptr;
hồi lại dài;

ret = strtoul(str, &ptr, 10);
printf("Số (số nguyên dài không dấu) là %lu\n", ret);
printf("Phần chuỗi là |%s|", ptr);

return(0);
}

Biên dịch và chạy chương trình trên sẽ cho kết quả như sau:

Số (số nguyên dài không dấu) là 2030300
Phần chuỗi là | Đây là bài kiểm tra|

câu trả lời hay nhất

char* RemoveDigits(char* đầu vào)
{
char* đích = đầu vào;
char* src = đầu vào;

trong khi(*src)
{
if (isdigit(*src)) { src++; tiếp tục }
*dest++ = *src++;
}
*đích = '\0';
trả lại đầu vào;
}

Bài kiểm tra:

int main(void)
{
char inText[] = "123 Mickey 456";
printf("Kết quả là %s\n", RemoveDigits(inText));
// Kết quả mong đợi: " Mickey "
}

Các số đã bị xóa.

Về c - cố gắng xóa tất cả các số khỏi một chuỗi trong C, chúng tôi đã tìm thấy một câu hỏi tương tự trên Stack Overflow: https://stackoverflow.com/questions/28353173/

26 4 0
Chứng chỉ ICP Bắc Kinh số 000000
Hợp tác quảng cáo: 1813099741@qq.com 6ren.com
Xem sitemap của VNExpress