banner

[Rule] Rules  [Home] Main Forum  [Portal] Portal  
[Members] Member Listing  [Statistics] Statistics  [Search] Search  [Reading Room] Reading Room 
[Register] Register  
[Login] Loginhttp  | https  ]
 
Forum Index Thảo luận hệ điều hành Windows Giúp em về cái hàm trong C  XML
  [Programming]   Giúp em về cái hàm trong C 25/01/2008 09:38:30 (+0700) | #1 | 112033
[Avatar]
mr_hoang09
Member

[Minus]    0    [Plus]
Joined: 23/04/2007 21:01:03
Messages: 64
Offline
[Profile] [PM]
chào mấy anh !
trong C ấy, khi mình muốn xóa 1 phần tử trong chuổi thì dùng hàm gì ạ ?
ví dụ em muốn xóa những khoảng trắng trong 1 cái tên thì làm thế nào ?
[Up] [Print Copy]
  [Question]   Giúp em về cái hàm trong C 25/01/2008 10:18:21 (+0700) | #2 | 112039
[Avatar]
K4i
Moderator

Joined: 18/04/2006 09:32:13
Messages: 635
Location: Underground
Offline
[Profile] [PM]

mr_hoang09 wrote:
chào mấy anh !
trong C ấy, khi mình muốn xóa 1 phần tử trong chuổi thì dùng hàm gì ạ ?
ví dụ em muốn xóa những khoảng trắng trong 1 cái tên thì làm thế nào ?
 


Trong C thì thư viện cho xử lý xâu là tương đối ít. Có thể đọc reference ở http://www.cppreference.com/stdstring/index.html các hàm có sẵn của C về xử lý xâu và kí tự. Về xóa một phần tử thì ko có.

Nếu để xóa khoảng trắng ở đầu và cuối có thể đọc các hàm trim, ltrim và rtrim. Đọc reference để biết cách sử dụng.

:d
Sống là để không chết chứ không phải để trở thành anh hùng
[Up] [Print Copy]
  [Question]   Giúp em về cái hàm trong C 25/01/2008 10:35:44 (+0700) | #3 | 112040
FaL
Moderator

Joined: 14/04/2006 09:31:18
Messages: 1232
Offline
[Profile] [PM]

mr_hoang09 wrote:
chào mấy anh !
trong C ấy, khi mình muốn xóa 1 phần tử trong chuổi thì dùng hàm gì ạ ?
ví dụ em muốn xóa những khoảng trắng trong 1 cái tên thì làm thế nào ?
 


Thời gian bỏ ra tìm các hàm đơn giản này bồ viết hẳn 1 hàm luôn cho xong :p
Hãy giữ một trái tim nóng và một cái đầu lạnh
[Up] [Print Copy]
  [Question]   Giúp em về cái hàm trong C 25/01/2008 10:48:47 (+0700) | #4 | 112044
[Avatar]
K4i
Moderator

Joined: 18/04/2006 09:32:13
Messages: 635
Location: Underground
Offline
[Profile] [PM]

FaL wrote:

mr_hoang09 wrote:
chào mấy anh !
trong C ấy, khi mình muốn xóa 1 phần tử trong chuổi thì dùng hàm gì ạ ?
ví dụ em muốn xóa những khoảng trắng trong 1 cái tên thì làm thế nào ?
 


Thời gian bỏ ra tìm các hàm đơn giản này bồ viết hẳn 1 hàm luôn cho xong :p 


Có gì đâu FaL, code thì nhanh nhưng đâu phải lúc này cũng code lại đâu smilie
Sống là để không chết chứ không phải để trở thành anh hùng
[Up] [Print Copy]
  [Question]   Re: Giúp em về cái hàm trong C 25/01/2008 11:05:42 (+0700) | #5 | 112045
[Avatar]
mr_hoang09
Member

[Minus]    0    [Plus]
Joined: 23/04/2007 21:01:03
Messages: 64
Offline
[Profile] [PM]
cảm ơn mấy anh
em sẽ nghiên cứu lại, mà em cũng tìm hiểu về những hàm chuẩn về chuổi và kí tự trong C nhưng chưa tìm ra cái hàm nào có thể giúp đỡ trong quá trình cắt bỏ chuổi hết
nếu cái này mà làm bằng Pascal thì làm xong lâu lắc rùi( em đã làm rùi)
[Up] [Print Copy]
  [Question]   Re: Giúp em về cái hàm trong C 20/02/2008 06:14:03 (+0700) | #6 | 115568
[Avatar]
doqkhanh
Member

[Minus]    0    [Plus]
Joined: 30/10/2007 14:51:27
Messages: 18
Location: EOF
Offline
[Profile] [PM]
Thử dùng hàm này xem:


int shift_buffer(char* buffer,int buffer_len,int shift_len)
{
if(buffer_len < shift_len) return 0;
memmove( buffer,buffer+shift_len,buffer_len-shift_len);
return buffer_len-shift_len;
}
[Up] [Print Copy]
  [Question]   Giúp em về cái hàm trong C 21/02/2008 00:45:36 (+0700) | #7 | 115700
pearltran
Member

[Minus]    0    [Plus]
Joined: 15/08/2007 13:10:08
Messages: 33
Offline
[Profile] [PM]

mr_hoang09 wrote:
chào mấy anh !
trong C ấy, khi mình muốn xóa 1 phần tử trong chuổi thì dùng hàm gì ạ ?
ví dụ em muốn xóa những khoảng trắng trong 1 cái tên thì làm thế nào ?
 

Muốn xóa phần tử nào trong chuỗi thì cho phần tử bên phải thế vào chỗ phần tử cần xóa.Ví dụ
Code:
#include <stdio.h>
#include<string.h>
void xoa(char s[],int n)
{
strcpy(&s[n],&s[n+1]);
}
main()
{
char s[50];
int n;
printf("Nhap chuoi:");
scanf("%s",s);
printf("%s\n",s);
printf("Cần xóa ký thứ mấy");
scanf("%d",&n);
xoa(s,n-1);
printf("Chuoi sau khi xoa :%s",s);
}
[Up] [Print Copy]
  [Question]   Re: Giúp em về cái hàm trong C 21/02/2008 02:26:15 (+0700) | #8 | 115712
[Avatar]
mr_hoang09
Member

[Minus]    0    [Plus]
Joined: 23/04/2007 21:01:03
Messages: 64
Offline
[Profile] [PM]
Cảm ơn mấy anh(chị).
Đây là chương trình chuẩn hóa 1 cái tên ( trong này cần có hàm cắt chuỗi)

#include<stdio.h>
#include<conio.h>
#include<string.h>
void chuan(char ch[]);
int tim(char ch1[],char ch2[]);
void xoa(char ch[] ,int n,int k);//xoa n ki tu tu vi tri thu k
main()
{
char str[30];
printf("nhap vao mot chuoi "); gets(str);
chuan(str);
puts(str);
getch();
return 0;
}
void xoa(char ch[],int n, int k)
{
int i,j;
for(i=0;i<k;i++)
for(j=n;j<strlen(ch);j++)
ch[j]=ch[j+1];
}
int tim(char ch1[],char ch2[])
{
char * ch3;
ch3=strstr(ch1,ch2);
if(ch3==NULL)
return -1;
else return (strlen(ch1)-strlen(ch3));
}
void chuan(char ch[])
{
int i;
while (ch[0]==' ') xoa(ch,0,1);
while (ch[strlen(ch)-1]==' ') xoa(ch,strlen(ch)-1,1);
while (tim(ch," ")!=-1) xoa(ch,tim(ch," "),1);
ch[0]=toupper(ch[0]);
for(i=0;i<strlen(ch);i++)
{
if(ch[i]==' ') ch[i+1]=toupper(ch[i+1]);
if(ch[i]!=' ') ch[i+1]=tolower(ch[i+1]);
}

[Up] [Print Copy]
[digg] [delicious] [google] [yahoo] [technorati] [reddit] [stumbleupon]
Go to: 
 Users currently in here 
1 Anonymous

Powered by JForum - Extended by HVAOnline
 hvaonline.net  |  hvaforum.net  |  hvazone.net  |  hvanews.net  |  vnhacker.org
1999 - 2013 © v2012|0504|218|