c语言如何将一串字符数据写入字符串数组

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了c语言如何将一串字符数据写入字符串数组相关的知识,希望对你有一定的参考价值。

#include<stdio.h>
void main()
char num[100];
printf("请输入字符串:\n");
gets(num); /*输入命令*/
printf("你输入的字符串为:\n");
puts(num); /*输出命令*/
参考技术A #include<stdio.h>
void main()

int i=0;
char *p=null;
char num[100];
printf("请输入字符串:\n");
p=gets()
while(p!=null)

num[i++]=*p++;


参考技术B 例如 :char str[ ]="china";这是用定义的字符数组str来存放字符串"china" 参考技术C 一个一个字符的赋值。
或者用 strcpy函数来复制。函数中也是一个个赋值的。本回答被提问者采纳
参考技术D 1、一个一个字符的赋值。或者用 strcpy函数来复制。strcpy函数中内部实现也是一个个赋值。
2、字符串以\0结束那是字符串在计算机内的存储结构,定义了字符串计算机默认会在字符串后加上\0做为字符串结束标记,但是写程序时并没有显式的写出来。
判断是否为字符串:字符串都是用双引号包含的。例如char *string="beijing"。
定义字符串有两种方法:
一、字符串指针 char *string="abcde";
二、一维字符数组。例如:char string[10];string="abcde";
用字符数组定义注意了,数组长度为n,但是字符个数只能为n-1,就是上面说的计算机默认加了\0占了一个,否则会溢出。字符数组一维的和字符串一样,二维的就是char string[M][N];当然你还可以类似定义多维的。

c++文件怎么从文件中读出和写入字符串?

其实我是想问

谁能告诉我怎么编写这个程序:

从文件“file1.txt”中读出一串包含若干数字和英文字母的字符串,将其中的数字字符挑选出来,
并将他们按由小到大的顺序存入文本文件“filenum.txt”中

急求啊,答的快又好的有100分的加分!!!!
说详细点好吗````

一般来说在C++语言中读取txt文件的信息有三种方法:

1、使用C语言标准文件I/O中的fopen()、fread()等等函数。示例如下(vc6.0下编译通过):

#include<stdio.h>
FILE*stream;
void main(void)

long l;
float fp;
char s[81];
char c;
 
stream=fopen("fscanf.out","w+");
if(stream==NULL)
printf("Thefilefscanf.outwasnotopened\\n");
else

fprintf(stream,"%s%ld%f%c","hello world",  
65000,3.14159,\'x\');
/*Setpointertobeginningoffile:*/
fseek(stream,0L,SEEK_SET);
/*Readdatabackfromfile:*/
fscanf(stream,"%s",s);
fscanf(stream,"%ld",&l);
fscanf(stream,"%f",&fp);
fscanf(stream,"%c",&c);
/*Outputdataread:*/
printf("%s\\n",s);
printf("%ld\\n",l);
printf("%f\\n",fp);
printf("%c\\n",c);
fclose(stream);

2、使用C++语言中的文件I/O中的ofstream,ifstream,fstream。示例如下(vc6.0下编译通过):

    #include <iostream>
    #include <fstream>
    #include <cstdlib>
      using namespace std;
    
    int main () 
        char buffer[256];
        ifstream in("test.txt");
        if (! in.is_open())
         cout << "Error opening file"; exit (1); 
        while (!in.eof() )
        
            in.getline (buffer,100);
            cout << buffer << endl;
        
        return 0;
    

3、使用操作系统中的API函数,比如Windows上的ReadFile()、OpenFile()等等,现在操作系统一般都具备内存文件映射功能,对于大的txt文件,一般都使用这种方式操作。 

参考技术A FILE *fin=freopen("input.txt","r",stdin);
FILE *fout=freopen("outfile.txt","w",stdout);
加上这个就和普通的命令行下读写一样了。。你可以尝试一下,如果都加上就是文件读写,在控制台就看不到信息的
你可以把input.txt 改成file1.txt然后再处理
参考技术B #include <iostream>
#include <fstream>
#include <string>
using namespace std;

int main()

ifstream input;
input.open("file1.txt");
if (input.fail())

cout<<"open the file error!\n";
exit(1);


string str;
if (input>>str)//输入串

int len = str.length();
string result;
int count = 0;
int i;
for (i = 0; i < len; i++)

if (isdigit(str[i]))//判断串里的数字

result += str[i];
count++;



int k;
int temp;

for (i = 0; i < count -1; i++)//排序

k = i;
for (int j = i+1; j < count; j++)

if (result[j] < result[k])

k = j;



if (k != i)

temp = result[k];
result[k] = result[i];
result[i] = temp;




ofstream output;
output.open("filenum.txt");
if (output.fail())

cout<<"open file error!\n";
exit(1);


output<<result<<endl;
output.close();


input.close();

return 0;

本回答被提问者采纳
参考技术C 对任意输入的字符串,将其按照指定的次数插入到指定的文件中 参考技术D 你打开有误哦! 可可

以上是关于c语言如何将一串字符数据写入字符串数组的主要内容,如果未能解决你的问题,请参考以下文章

c语言如何解析xml并将所有内容存入数组

c语言求数组第k大的数字

c语言中如何在一个字符串里搜索出其中的字母和数字啊?谢谢

请问,JAVA中如何实现将一字符串一一导入数组

请问c语言中用字符数组怎么判断输入的一串数字是大于等于或者小于0呢

C++有一串01字符序列,如何把它们转化为对应的二进制位的形式写入文件