01/10/2018, 09:32
Xóa khoảng trắng thừa của chuỗi
mình có bài tập về chuỗi, đề bài là xóa các khoảng trắng thừa bao gồm đầu cuối và giữa của chuỗi, mình viết chương trình như này không biết sai chỗ nào, nhờ mọi người giúp mình sửa lỗi, cám ơn
#include<stdio.h>
#include<string.h>
char *string_standardized(char *target);
int main()
{
char* target;
gets(target);
string_standardized(target);
puts(target);
return 1;
}
char *string_standardized(char *target) {
if (target == NULL) {
return NULL;
}
while(target[0] == ' ')
{
strcpy(&target[0],&target[1]);
}
while(target[strlen(target) - 1] == ' ')
{
strcpy(&target[strlen(target) - 1],&target[strlen(target)]);
}
for(int i =0; i < strlen(target); i++)
{
if((target[i] == ' ') && (target[i+1] == ' ') )
{
strcpy(&target[i],&target[i+1]);
i--;
}
}
return target;
}
Bài liên quan
Lỗi do bạn chỉ khai báo con trỏ chuỗi nhưng không cho nó trỏ với vùng nhớ nào cả (tìm hiểu về cấp phát động). Hoặc bạn có thể khai báo kích thước cố định cho chuỗi:
char target[100];
như vậy là xong.Code này thấy nhì nhằng quá, với lại strcpy không chạy trên hai chuỗi chồng lên nhau đâu
Hi Lam Nguyen.
Làm một cái Oto là xong.
mình chưa học con trỏ nên làm như vầy, debug ra đúng hết , trình mình hơi cùi nên code lằng nhằng lắm ,
ok mình cám ơn ~~~~~~~~~~~~~~