㈠ C語言程序從文件中讀取字元串
學了結構體了沒?
學過結構體就用以下方法讀寫文件
/* 寫文件 */
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
// 用戶信息結構體
struct user_info{
char name[30]; // 姓名
char sex[10]; // 性別
int id; // 帳號
};
int main(){
FILE *fp = fopen("user_info.txt","w+b"); // 創建一個文件
if(fp == NULL){ // 如果創建文件失敗
perror("fopen()");
return -1;
}
struct user_info u;
strcpy(u.name, "xiaoming");
strcpy(u.sex, "boy");
u.id = 12345678;
fwrite(&u, sizeof(u), 1, fp); // 把信息寫入到文件中
close(fp);
return 0;
}
/* 讀文件 */
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
struct user_info{
char name[30]; // 姓名
char sex[10]; // 性別
int id; // 帳號
};
int main(){
FILE *fp = fopen("user_info.txt","r+b"); // 打開一個文件
if(fp == NULL){ // 如果打開文件失敗
perror("fopen()");
return -1;
}
struct user_info u;
fread(&u, sizeof(u), 1, fp); // 把讀取文件
// 列印讀取的信息
printf("name:%s sex:%s id:%d\n", u.name, u.sex, u.id);
close(fp);
return 0;
}
㈡ C語言中 先從鍵盤上獲取一串字元串 再將字元串內的每個字元都轉換為ASCII碼格式
這個問題很簡單 就當你輸入的字元串 小於一百來說
/* Note:Your choice is C IDE */
#include "stdio.h"
#include "string.h"
void main()
{ char a[100];int n,i;
gets(a);
puts(a);
n=strlen(a);
for(i=0;i<n;i++)
printf("%4d",a[i]);
}
要注意的就是字元和整型是相通的 呵呵
如果你覺得不知道要輸入多長的串
那這樣應該可以
/* Note:Your choice is C IDE */
#include "stdio.h"
#include "string.h"
void main()
{ int n,i;char a,*p=&a;
gets(p);
n=strlen(p);
for(i=0;i<n;i++)
printf("%4d",*p+i);
}
㈢ C語言,讀取字元或字元串的問題
字元一個個讀有很多種方法判斷
如使用一個輸入時不會用到的字元,「#」或是'\n'還有就是輸入使用EOF
這些都根據你之前設定的條件決定
你可以看看C PRIMER PLUS
其中有一章專門介紹字元串的輸入和輸出
㈣ C語言如何取一串字元串中的某個字元
C中的字元串就是一個字元數組。
如:
char s[10]="wo shi SB";
char c;
取最左邊的字元,就是c=s[0];
㈤ C語言問題從文件中讀取字元串
str = strtok("hehe##234##ssd##56","##");
//str = "hehe" 指針里的字元串
str = strtok(NULL,"##");
//str = "234"
str = strtok(NULL,"##");
//str = "ssd"
str = strtok(NULL,"##");
//str = "56"
㈥ C語言取出字元串中的字母
#include <stdio.h>
int main() {
char s[100];
int i;
scanf("%s",s);
for(i = 0;s[i];i++) {
if(a[i] >= 'a' && a[i] <= 'z') s[i] -= 'a' - 'A';
else if(a[i] >= 'A' && a[i] <= 'Z') a[i] -= 'A' - 'a';
}
printf("%s\n",s);
return 0;
}
㈦ 怎麼用C語言讀取有字元串做索引的ASCII
用數組不行,因為數組在編譯時就要確定長度。
用動態內存分配。
1. datamap = (char*)malloc(file size) 作一維數組的.
2. 動態分配二維數組,可以先分配 100 個
如 ptoken = (char**)malloc(100*sizeof(char*))
memset(ptoken,0,100*sizeof(char*));
ptoken[0] = strtok(datamap,分隔符集合字串)
while(1)
{
palloctime=0;
for(i=1;i<100;i++)
{
ptoken[i+palloctime*100] = strtok(NULL,分隔符集合字串);
if(ptoken[i+palloctime*100]==NULL)
break;
}
if(i!=100)
break;// exit while loop
palloctime++;
ptoken = (char**)realloc(100*(palloctime+1)*sizeof(char*))// 重新分配
//並保留以前的數據
memset(ptoken+(100*palloctime*sizeof(char*)),0,100*sizeof(char*));
}
3. 就可以用 ptoken[i][j]來訪問了。
㈧ C語言中 怎麼把一個字元串變化為ASCII
思路:因為在 C 語言中,字元型數據在計算機內存中,是以字元的ASCII碼形式存儲。
所以字元和其對應的ASCII碼是等價的,比如'A'這個字元和單位元組整數65是等價的。即字元的整數形式就是其ASCII碼。
故:定義一個整形變數並賦個字元,得到的整數就是該字元的ASCII碼。字元串變化為ASCII,只需for循環遍歷依次輸出每個字元的ASCII碼即可。
參考代碼:
#include<stdio.h>
intmain()
{
chara[20]="ABDRTSSW";
intn,i;
for(i=0;a[i]='