C语言字符串存入多个单词
char只能存放一个字符,你可以定义一个数组来单个存放
非要存放多个字符请用字符串
如果是要存放单个汉子,请用char a[2]="的"来存放
因为一个汉字占2个字节
这个while一直为真
while(c[j]!=' ')
i++;
这个复制单词是错误的
for(m=0;m<a;m++)
b[m]=c[j];
我改了一下程序,应该使用下面的比较好。
#include
#include
int main() {
//a 单词的临时最大长度
//i 每个单词的长度
//len 输入的字符的字符个数
int a = 0, i = 0, j = 0, m = 0, len = 0;
char c[80], b[80];
gets(c);
len = strlen(c); //计算c中的字符个数
for (j = 0; j < len; j++) {
if (c[j] != ' ') {
i++; //如果一直是单词字符,i增加1
}
if (c[j] == ' ' || c[j] == '\0') { //如果c中遇到空格或结束符
if (a < i) {
a = i;
for (m = 0; m < i; ++m) { //复制单词
b[m] = c[j - i + m];
}
}
i = 0;
}
}
b[m] = '\0'; //给单词末尾加上"\0"
puts(b);
}
应该这样写
typedef struct stu //表示自定义一个新的类型
{
姓名:定义一个字符串数组;
学号:定义一个数组或者定义一个long int数
成绩:定义一个整形的数就可以了
};
之后可以在主函数中这样定义: stu a[100];//表示100个学生,对每个学生的姓名、学号、成绩的引用分别为--------a[i].姓名、a[i].学号、a[i].成绩;写入文件的时候可以将结构体数组a[100]直接写入文件
中国人的姓名大都在2到4个字之间,一个汉字占用2个字节,再加上串结束符,所以存放姓名的数组长度有9个字符即可。学号的长度根据具体情况而定,如果是整数,可以用unsigned类型存储,如果是字符数值混合型,则要用字符数组,成绩可用float类型表示。例如
char name[9];
char No[12];
float score;
用scanf接收你所要接收的信息,输出时用printf
写上这个函数,就能够写入到文件:
freopen("你要存的文件位置及文件名", "w", stdout);
如果你要从文件中读入的话就添上这句话就行:
freopen("你要读的文件位置及文件名", "r", stdin);
每个scan函数后面加上while(getchar!='\n'); 就可以避免换行符被吞吃情况。
char Name[10][30];
for(int i=0;i<10;++i)scanf("%s",Name[i]);
c语言一个字符串如何以空格为分隔符分别存入一个二维数组每行?_百度知 ...
c语言一个字符串要以空格为分隔符分别存入一个二维数组每行一个单词,可以逐个字符复制到二维数组中的一行中,遇到空格就结束复制,并把二维数组中新的字符置为空字符,并准备开始下一行的复制。直到第一个字符串结束为止。
jsp中能否用session存储多个字符串?若可以用什么方法可以分别取出session...
当然可以存储多个,session.setAttribute(name, object);多次用这个api就可以,当然name值不要相同,object是你要存的东西,name是你给存的东西取得名字,取得时候用getAttribute(name);就可以取出
定义二维字符数组输入多个字符串,然后输出输入的这些字符串 c语言编程...
define MAX_STRING_LEN 128 define MAX_STRING_CNT 10 int main (){ int arr[MAX_STRING_CNT][MAX_STRING_LEN];int i;int line;printf("input the string count,each less %s letter:", MAX_STRING_LEN);scanf("%d", &line);if (line > MAX_STRING_CNT) { line = MAX_STRING_CNT;}...
c语言输入多个string字符串的时候,怎么输入一个,回车以后再输入第二个...
char a[10], b[10];cin>>a;cin>>b;然后再把ab从char转为string 这样试试 如 include <iostream>;#include <string>;using namespace std;void main() {char a[10],b;cin >> a;cin >> b;string s = a;cout << s << endl;} ...
C语言编程 输入一个不超过40个字符的字符串,将其存入数组中,统计并输出...
include <stdio.h> int main(){ char c[40];int i,n=0;printf("输入字符串\\n");scanf("%s",c);for (i=0;c[i]!='\\0';i++){ if(c[i] =='a')n++;} printf("a的数量为:%d\\n",n);return 0;}
在C语言中怎么把字符串存入数组
单独说存入字符串:你可以定义一个字符数组和指针 让指针 指向数组:char *p,a[10];p=a[10];scanf("%f",p);
快帮忙啊!!C语言编程:输入几个字符串(要求有多个China),并保存到te...
include<fstream> include<iostream> include<cstdlib> using namespace std;int main(){ ifstream infile;char s[100];infile.open("test.txt",ios::in);while(!infile.eof()){ infile.getline(s,sizeof(s));cout<<s<<endl;} ofstream savefile("test.txt",ios::out);char ch[...
C语言编程:输入一个字符串并存入a数组,a数组赋值给b数组。。
include<stdio.h> include<string.h> void main(){ char a[100]="",b[100]="";int i=0;int j=0;gets(a);while(a[i]!='\\0'){ if(a[i]>='a'&&a[i]<='z'){ b[j++]=a[i];} i++ ;} puts(b);}
在C语言中处理字符的几种常用方法?
基本上两种:字符数组和字符指针。字符数组名是常量,字符指针是变量 1、用字符数组:一个一维字符数组存储一个字符串,二维数组存储多个字符串。如:int i;char s1[]="abc",s2[][80]={"ABCD","XYZ"},s3[80];scanf("%s",s3);printf("%s,%s\\n",s1,s3);for(i=0;i<2;i++)printf("...
C语言 怎么将很长的字符串存入数组,以及如何输出
首先你定义的是一个二维数组,数组的大小要大于字符串的长度加1,这个加的1用来保存字符串结束符'\\0'其次,二维数组的输出需要用循环输出,不能直接printf 比如 for(int i=0;i<14;++i){ printf("%s\\n", welcome_buff[i]);}
啜尚醋酸: char Name[10][30]; for(int i=0;i<10;++i)scanf("%s",Name[i]);
廉江市13870879002: C语言编程题:输入N个英文单词,建立字符串数组,按字典顺序输出这些英文单词,要求用指针实现. - ?
啜尚醋酸: #include #defineN5 voidswap(char*p1,char*p2){ chartemp[100]; strcpy(temp,p1); strcpy(p1,p2); strcpy(p2,temp); } intmain(){ inti,j; charstr1[N][100],*str[N]; for(i=0;iscanf("%s",*(str1+i)); } for(i=0;istr[i]=*(str1+i); } for(i=0;ifor(j=i+1;jif(strcmp(str[i],str[j])>...
廉江市13870879002: c语言输入一个字符串统计出该字符串由多少个单词组成.每个单词之间用空格分隔开,最后的字符不能为空格? - ?
啜尚醋酸: #include<stdio.h> main(){ char string[81]; int i,num=0,word=0; char c; gets(string); for(i=0;(c=string[i])!='\0';i++) if(c==' ') word=0; else if(word==0){ word=1; num++; } printf("There are %d words in the line. \n" ,num); } 你说的这句 if(c==' ') word=0; ...
廉江市13870879002: c或c++中,怎么把多行英文语句中的每个单词(包括符号)存入多个数组? - ?
啜尚醋酸: 有好几种方法,最简单的就是sscanf,比如char s[256]; sscanf(source, "%s", s);就读进一个单词.更常见的是strtok,即把字符串拆分成一个一个的单词,包括符号.直接网上搜这两个关键词即可.
廉江市13870879002: 题目 - 例题(12.8) 单词替换 C语言描述输入一个字符串,以回车结束(字符串长度关于输入输入包括3行: 第1行是包含多个单词的字符串 s 第2行是待替换... - ?
啜尚醋酸:[答案] #include #define MAX 1000 #define LEN 20 void Input (char *a, char *b, char *c){ gets(a); gets(b); gets(c); } void Swap (char *... //length of the old word SwapWordLength=strlen(SwapWord); //length of the new word n=SwapWordLength-FindWordLength;...
廉江市13870879002: C语言 输入一串英文字符串(含有空格) 然后再每一行按顺序输出该字符串的单词 (每行一个单词) - ?
啜尚醋酸: #include <stdio.h> #include <string.h>int main() { char a[30]; char b[30]; int i=0,j=0,temp; gets(a); //获取字符串 for(i=0;i<strlen(a);i++) if(a[i]==32 ) //为空格就把之前的数组输出 {for(temp=0;temp<j;temp++)printf("%c",b[temp]);printf("\n");...
廉江市13870879002: C语言:输入多行字符串统计单词数,以#号为结束 - ?
啜尚醋酸:#include<stdio.h> int main() { char x[100]; int i=0,len=0; printf("Please input the string ended with '#':\n"); scanf("%c",&x[i]); while (x[i]!='#') { if(' '==x[i]) len++; i++; scanf("%c",&x[i]);} printf("the number of the words is:%d\n",len+1); return 0; }
廉江市13870879002: C语言输入字符串,将输入字符串里的各单词逐行输出. - ?
啜尚醋酸: 最简单的方法就是用strtok函数,可以轻松搞定! char str[128] ; //输入数据 char *word; gets(str);word=strtok(str, " " ); //单词间应该是用空格分开的 while ( word ) {printf("%s\n", word ); word=strtok(NULL, " " );}
廉江市13870879002: c语言 输入一行字符,统计有多少个单词 - ?
啜尚醋酸: #includeint main() { char string[81]; int i,num=0,word=0; char c; gets(string); for(i=0;(c=string[i])!='\0';i++) if(c==' ')word=0; else if(word==0) { word=1; num++; } printf("There are %d words in the line.\n",num); return 0; }
廉江市13870879002: C语言:在一个字符数组中先后存放多个字符串,是怎么存放,举例说明 - ?
啜尚醋酸: #include <string.h> char a[80];//将"abcd"保存到a中 strcpy(a,"abcd");//输出a中的字符串 puts(a);//将"1234"保存到a中 strcpy(a,"1234);//输出a中的字符串 puts(a);