69,371
社区成员
发帖
与我相关
我的任务
分享
#include <stdio.h>
#include <string.h>
typedef struct _test
{
char a[3];
char b[3];
char c[3];
}test;
//去除右边空格
int trim_right(char *str, int len)
{
while (len > 0) {
if (str[len-1] != 0x20)
break;
--len;
}
str[len] = '\0';
return len;
}
int main(void)
{
char c[20] = "12 3456 ";
char d[20] = {0};
test t = {0};
memcpy(&t,c,20);
trim_right(t.a, sizeof(t.a));
trim_right(t.b,sizeof(t.b));
sprintf((char *)d, "a: %s\r\n", t.a);
sprintf((char *)d, "%sb: %s\r\n", d, t.b);
sprintf((char *)d, "%sc: %s\r\n",d, t.c);
puts(d);
return 0;
}
#include <stdio.h>
#include <string.h>
typedef struct _test
{
char a[3];
char b[3];
char c[3];
}test;
//遍历字符串,去掉空格,并存放入结构中
void trim_right_cpy(char * str,test *pt)
{
char *p;
int i,j;
for(i=0;i<=6;i+=3)
{
p=(char *)pt+i;
for(j=0;j<3;j++)
{
if( str[i+j]!=' ' && str[i+j] )
{
*(p++)=str[i+j];
}
}
}
}
int main(void)
{
char c[20] = " 345 3 4535 ";
char d[20] = {0};
test t = {0};
trim_right_cpy(c, &t);
sprintf(d, "a:%c%c%c", t.a[0],t.a[1],t.a[2]);
sprintf(d, "%s\nb:%c%c%c", d, t.b[0],t.b[1],t.b[2]);
sprintf(d, "%s\nc:%c%c%c", d, t.c[0],t.c[1],t.c[2]);
puts(d);
return 0;
}
#include<stdio.h>
typedef struct _test
{
char a[3+1];
char b[3+1];
char c[3+1]; //字符串操作,需要+1的空间保存\0字符
}test;
//去除右边空格
int trim_right(char *str, int len)
{
while (len > 0)
{
if (str[len-1]!= 0x20)
{
break;
}
else
{
--len;
str[len] = '\0';
}
}
return len;
}
int main()
{
char c[20] = "12 3456 ";
char d[20] = {0};
test t = {0};
//memcpy(&t,c,20);
strncpy(t.a,c,sizeof(t.a)-1); //strncpy指定字节数即可
strncpy(t.b,c+sizeof(t.a)-1,sizeof(t.b)-1); //注意计算copy的位置
strncpy(t.c,c+sizeof(t.a)+sizeof(t.b)-2,sizeof(t.c)-1);
trim_right(t.a, strlen(t.a));
trim_right(t.b,strlen(t.b));
trim_right(t.c,strlen(t.c));//用字符串操作函数
sprintf((char *)d, "a: %s\r\n", t.a);
sprintf((char *)d, "%sb: %s\r\n", d, t.b);
sprintf((char *)d, "%sc: %s\r\n",d, t.c);
puts(d);
system("pause");
return 0;
}
typedef struct _test
{
char a[3+1];
char b[3+1];
char c[3+1]; //字符串操作,需要+1的空间保存\0字符
}test;
//去除右边空格
int trim_right(char *str, int len)
{
while (len > 0) {
if (str[len-1] != 0x20)
break;
--len;
}
str[len] = '\0';
return len;
}
int main(int argc, char* argv[])
{
char c[20] = "12 3456 ";
char d[20] = {0};
test t = {0};
//memcpy(&t,c,20);
strncpy(t.a,c,sizeof(t.a)-1); //strncpy指定字节数即可
strncpy(t.b,c+sizeof(t.a)-1,sizeof(t.b)-1); //注意计算copy的位置
strncpy(t.c,c+sizeof(t.a)+sizeof(t.b)-2,sizeof(t.c)-1);
trim_right(t.a, strlen(t.a));
trim_right(t.b,strlen(t.b));
trim_right(t.c,strlen(t.c));//用字符串操作函数
sprintf((char *)d, "a: %s\r\n", t.a);
sprintf((char *)d, "%sb: %s\r\n", d, t.b);
sprintf((char *)d, "%sc: %s\r\n",d, t.c);
puts(d);
return 0;
}