本文目录一览:
C语言输入带空格的字符串的处理
用 scanf("%s",array); 的话遇到空格就停止接收后面的字符了
以下是处理这种情况的一些方法(记录下来以免以后遇到相似的问题):
注 : %[abc] 表示字符组合包括 a、b和c ,如果遇到这三个字符之外的字符,则停止接收。 %[^abc] 代表字符组合为 abc 以外的所有字符,至于横杠是否用于指定某个范围的字符 %[a-z] ,则因编译器而异。
c语言麻烦帮忙解决空格问题!谢谢大神们
#include stdio.h
#includestdlib.h
#include string.h
struct student
{
int number;
char name[20];
char sex;
double brith;
}stu[2];
int main()
{
int i;
printf("Input student information:\n");
for(i=0;i2;i++)
{
scanf("%d %s %c %lf",stu[i].number,stu[i].name,stu[i].sex,stu[i].brith);
}
if(stu[0].brithstu[1].brith)
printf("number:%d\nname:%s\nsex:%c\nbrith:%.4f\n",stu[0].number,stu[0].name,stu[0].sex,stu[0].brith);
else
printf("number:%d\nname:%s\nsex:%c\nbrith:%.4f\n",stu[1].number,stu[1].name,stu[1].sex,stu[1].brith);
system("PAUSE");
return EXIT_SUCCESS;
}
C语言中去掉空格问题
/*去除字符串右边空格*/
void
vs_strrtrim(char
*pstr)
{
char
*ptmp
=
pstr+strlen(pstr)-1;
while
(*ptmp
==
'
')
{
*ptmp
=
'\0';
ptmp--;
}
}
/*去除字符串左边空格*/
void
vs_strltrim(char
*pstr)
{
char
*ptmp
=
pstr;
while
(*ptmp
==
'
')
{
ptmp++;
}
while(*ptmp
!=
'\0')
{
*pstr
=
*ptmp;
pstr++;
ptmp++;
}
*pstr
=
'\0';
}
c语言中把文件中的空格去除
第一种:使用位域限制读取的长度;
第二种:可以直接按照结构体来读写;
实例代码如下:
#include "stdafx.h"
#include cstdio
#include cstdlib
#include cstring
struct Roommate{
char name[6];
char NO[8];
char addr[10];
};
int _tmain(int argc, _TCHAR* argv[])
{
struct Roommate Rom[2] = {0};
FILE *file = NULL;
if(!(file = fopen("a.txt", "w"))) {
printf("Create File failed!\n");
exit(-1);
}
printf("Please input four times Roommate data: Name NO Addr\n");
for(int i=0; i2; ++i) {
scanf("%s%s%s", Rom[0].name, Rom[0].NO, Rom[0].addr);
fwrite((const void *)Rom[0], sizeof(struct Roommate), 1, file);
}
fclose(file);
/* Read from file*/
file = NULL;
if(!(file = fopen("a.txt", "r"))) {
printf("Create File failed!\n");
exit(-1);
}
printf("Read from the file: Name NO Addr\n");
fread((void *)Rom, sizeof(struct Roommate), 2, file);
for(int i=0; i2; ++i) {
printf("i=%d Name:%s\tNO:%s\tAddr:%s\n", i, Rom[i].name, Rom[i].NO, Rom[i].addr);
}
fclose(file);
while(getchar()) ;
return 0;
}