1.C語言 統計字符串 超簡單啦
輸出是110000000。000(共24個0)
原因在于:
for (i=0;i<26;i++)
printf("%d",pp[i]);pp[]數組初始化為全0, 只有輸入對應的字符,比如a,pp['a'-'a']=pp[0]=1,不然pp中元素的值仍為0, 這個for循環把pp數組里面26個元素都輸出了,輸入ab時,pp[0]=1,pp[1]=1,其余24個元素仍為0,所以輸出是110000。.
這里可以加一個條件
for (i=0;i<26;i++)
if(pp[i]!=0)
printf("%d",pp[i]);
這樣就可以得到你想要的輸出了
另外這個程序還有一個問題,fun(&str[],pp);應該改為fun(str,pp);對于調用字符數組,數組名就表示地址,直接把數組名賦值給一個字符指針。
改正的程序:
#include <stdio.h>
#include <string.h>
void fun(char *str,int pp[])
{
int i;
for (i=0;i<strlen(str);i++)
pp[str[i]-'a']++;
for (i=0;i<26;i++)
if(pp[i]!=0)
printf("%d",pp[i]);
}
int main()
{
int pp[26];
char str[1001];
printf("輸入由a~z組成的字符串,中間勿加空格:\n");
scanf("%s",str);
memset(pp,0,sizeof(pp));
fun(str,pp);
return 0;
}
執行結果:
輸入由a~z組成的字符串,中間勿加空格:
ab
11Press any key to continue
2.請高手給一個簡短的程序,字符串Here you are變成are you here,要求
//#include "stdafx.h"http://vc++6.0加上這一行.
#include "stdio.h"
#include "string.h"
void main(void){
char a[]="Here you are";
int ln=strlen(a),i;
strrev(a);
for(i=0;i<ln;i++)
if(a[i]==' ') a[i]='\0';
for(i=0;i<ln;i++)
if(i==0) strrev(a);
else if(a[i]=='\0'){
a[i]=' ';
strrev(a+i+1);
}
printf("%s\n",a);
}
* SE怎么最簡短、最地道的代碼把一個文本文件讀到一個字符串
private String readtxt(String filename) throws IOException{
BufferedReader br=new BufferedReader(new FileReader(filename));
String str="";
String r=*ne();
while(r!=null){
str+=r;
r=*ne();
}
return str;
}
4.C語言編程題在屏幕上輸入一個字符串和一個要插入的字符
直接看代碼:#include