當前位置:首頁 » 編程語言 » c語言原有字元串
擴展閱讀
webinf下怎麼引入js 2023-08-31 21:54:13
堡壘機怎麼打開web 2023-08-31 21:54:11

c語言原有字元串

發布時間: 2023-08-06 19:38:45

1. c語言里如何把已有的字元串寫入文件里

int main()
{
FILE *fp;
fp = fopen("aa.txt", "w");
if(fp ==NULL)
printf("打開文件aa.txt失敗\n");
fprintf(fp, "Hello Workd!");

return 0;
}

aa.txt 是在你當前文件夾中的,就是和程序就同一個目錄下,你也帶路徑 c:/my/aa.txt

2. c語言字元串提取與合成問題

按要求,將原字元串拆分成兩個字元串分別單獨保存。

思路:

一、兩個指針分別指向數組第一項和第二項,對應偶數項和奇數項,之後指針同時循環+2取值保存在對應數組。

二、拼接字元串直接使用字元串函數strcat。(不想使用庫函數,也可循環賦值)。

#include <stdio.h>

#include <string.h>

#define M 20 //數組最大長度

int splitStr(char str[],char oStr[],char eStr[]);//拆分str到oStr和eStr

int main()

{

char str[M+1],oStr[M+1],eStr[M+1];//str為原字元串,oStr為奇數字元串,eStr為偶數字元串

printf("請輸入一個字元串(最大%d個字元):",M);

scanf("%s",str);

splitStr(str,oStr,eStr);

printf("其中奇數項組成的字元串為:%s ",oStr);

printf("其中偶數項組成的字元串為:%s ",eStr);

strcat(eStr,oStr);//將偶數組和奇數組組合後放在偶數組中

printf("將偶數組和奇數組組合後新數組為%s ",eStr);

return 0;

}

int splitStr(char str[],char oStr[],char eStr[])

{

int i=0,j=0;

char *op=str+1,*ep=str;//op指向奇數項,ep指向偶數項,循環+2取值

while(1)

{

if(*ep==0) break;

if(*ep) eStr[i++]=*ep;

if(*ep && *op) oStr[j++]=*op;

if(*op==0) break;

ep+=2,op+=2;

}

eStr[i]=0,oStr[j]=0;

return 1;

}

3. C語言怎麼用函數把一個字元串逆序存放,比如說原字元串是abcd,怎麼將他改為dcba

我以前寫了這個程序。略粗糙

源代碼:

#include <stdio.h>
#include <string.h>
#define ARR_SIZE 80 //字元串最大長度
int Inverse(char a[]);
void main(void)
{
char str[ARR_SIZE]={0};
printf("P199 6.12\n"); //題號
printf("---------------------Inversed sequence---------------------\n");
printf("\nPlease enter a charstring:\n\n");
gets(str); //輸入一個字元串
Inverse(str); //調用函數逆序存放
}
int Inverse(char a[])
{
char b[ARR_SIZE]={0};
int i;
int maxsize;
maxsize=strlen(a)-1; //得到最後一個字元位置
for (i=0;i<strlen(a);i++) //依次交換存放
{
b[maxsize]=a[i];
maxsize--;
}
printf("\nThe changed result is:\n\n");
puts(b); //輸出交換存放結果
printf("\n");
}

4. C語言中有string嗎

C語言中沒有string類型。

string類型是 C++、java、VB等編程語言中的。 在java、C#中,String類是不可變的,對String類的任何改變,都是返回一個新的String類對象。string 是C++標准程序庫中的一個頭文件,定義了C++標准中的字元串的基本模板類std::basic_string及相關的模板類實例。

而在C語言中,C語言中沒有字元串類型,字元串是存放在字元型數組中的,將字元串作為字元數組來處理的。為了測定字元串的實際長度,C語言規定了一個「字元串結束標志」,以字元''作為結束標志 。

(4)c語言原有字元串擴展閱讀:

C++中string的使用:

其中的string是以char作為模板參數的模板類實例,把字元串的內存管理責任由string負責而不是由編程者負責,大大減輕了C語言風格的字元串的麻煩。std::basic_string提供了大量的字元串操作函數,如比較、連接、搜索、替換、獲得子串等。並可與C語言風格字元串雙向轉換。

字元串在C語言中的使用:

字元串常量初始化數組。如:char c[ ]={『c』,『 』,『p』,『r』,『o','g','r','a','m'};可寫為:char c[ ]={"C program"}; 或去掉{}寫為:char c[ ]="C program"。

5. C語言有字元串這種數據類型嗎

C語言有字元串這種數據類型。

  1. C/C++語言 用 char 數組 存放 字元串。

    例如:

  2. charstr[]="abcd1234";
    char*ss="1234XYZ";
    printf("%s %s ",str,ss);
  3. C++ 有 string 類 (class) , 術語 「類」 不是 術語「類型」。java 學了 string 類。例如 :

#include<iostream>
#include<string>
usingnamespacestd;
intmain()
{
stringstr1,str2,str3;
str1="Teststring:";//c-string
str2='x';//singlecharacter
str3=str1+str2;//string
cout<<str3<<endl;
return0;
}

C/C++還可以自己定義類型,例如:

#include<stdio.h>
typedefcharJv_str[100];
main(){
Jv_strs;
printf("enterastring ");
gets(s);
printf("thestringis:%s ",s);
}

6. C語言里如何把已有的字元串寫入文件里

設要寫入的數字是int型,則用控制字元串%d和%s來完成,舉例代碼行如下:
fprintf(fp,"%d %s ",12345,"abcdefg");
其中:fp是成功寫打開文件的指針。此代碼行先向文件寫入整型數字12345,再加一個空格,接著寫入字元串abcdefg,然後寫入' '。

#include "stdio.h"
#include "string.h"
void main()
{
char a[6]="china";
char temp[1024];
int n=0;//記錄有多少個china
FILE *outFile=fopen("c:.txt","r+");
FILE *inFile=fopen("c:a.txt","r+");
while(fgets(temp,500,inFile)!=NULL)
{
int k=0;
for(int i=0;i<strlen(temp);i++)
{

if(temp[i]==a[k] && k<strlen(a))
{
k++;
}
else
{
if(k==strlen(a))
{
n++;
fprintf(outFile,"%s
",a);
}
k=0;
}
}
}
}
在C盤要有這兩個文件。。。
a文件中可能有多個china ,指定加到第幾行自己看情況 在設置一個int變數記錄就行了