C# 程序应该给单词一个特殊的数值(但是…;)

C# 程序应该给单词一个特殊的数值(但是…;),c#,c,string,stdio,C#,C,String,Stdio,我用C写了一个程序,它运行得很好。当我试图把它翻译成C语言时,它不是在编译。问题是C#不知道scanf(“%19s”,string1)的含义与C类似。 我将scanf更改为: string read; do { read = Console.ReadLine(); } while (read.Length <= 19); 它工作得更好,但如果不检查语句,,因为我得到的所有“总和”都等于0 这是翻译成C的程序: 该项目的理念是: 程序给我们键入的单词的每个字母赋予数字意义,并将

我用C写了一个程序,它运行得很好。当我试图把它翻译成C语言时,它不是在编译。问题是C#不知道
scanf(“%19s”,string1)的含义与C类似。
我将scanf更改为:

string read;
do
{
     read = Console.ReadLine();
}
while (read.Length <= 19); 
它工作得更好,但如果不检查
语句,
,因为我得到的所有“总和”都等于0

这是翻译成C的程序:

该项目的理念是:
程序给我们键入的单词的每个字母赋予数字意义,并将这些数字相加

问题二:如何作出决定

 if (string1[rigi-1]==i) 
    {
     sum=sum-10; sum2=sum2-10; sum3=sum3-55;
    } 

工作?

在C#中没有结束字符字符串,就像在C中一样。事实上,C中的字符串和C中的字符串是两个完全不同的东西,它们的使用方式不同

因此,对于字符串上的循环,最好的方法是使用
foreach
循环。
改变

然后
string1[rigi]
必须变成
oneCaracter
sbyte
必须变成
char

样本校正:

char a = 'a';
int sum = 0;
int sum2 = 0;
int sum3 = 0;

string string1Input = Console.ReadLine();

foreach(char oneCaracter in string1Input)
{
    if (oneCaracter == a)
    {
        sum3 = sum3 + 1;
        sum2 = sum2 + 1;
        sum = sum + 1;
    }
}

if (string1Input[string1Input.Length - 1] == i) 
{
    sum = sum - 10; sum2 = sum2-10; sum3 = sum3-55;
}

这就是为什么您应该手工完成这项工作……您的代码基于许多对C正确但对C#不正确的假设。例如,C#中的字符串不以
'\0'
字符结尾。翻译代码需要对两种语言有深入的了解;如果你还不太熟悉C语言,试着从头开始用C语言实现你的程序。为什么有这么多
a、b、g、H
等变量
if(oneCharacter=='a')
也可以。这是古格鲁吉亚字母表中的字母,我写了38次if语句,难道我不需要初始化
c
?或者如果我将字母c初始化为
charc='c'
@Gio:你说得对,将声明两个
c
变量。那就改名吧。请看我编辑的答案。谢谢你的帮助。我使用了新值“M”,但我没有初始化它。现在它工作得很好这是我做的改变。但是如何在for
if(string1[rigi-1]==i){sum=sum-10;sum2=sum2-10;sum3=sum3-55;}
/*如果最后一个字符是“i”,则执行此操作sum=sum-10;sum2=sum2-10;sum3=sum3-55*/@Gio:不难,看看编辑后的答案:
if(string1Input[string1Input.Length-1]==i)
 if (string1[rigi-1]==i) 
    {
     sum=sum-10; sum2=sum2-10; sum3=sum3-55;
    } 
for (rigi = 0; string1[rigi] != '\0'; rigi++)
foreach(var oneCaracter in string1Input)
char a = 'a';
int sum = 0;
int sum2 = 0;
int sum3 = 0;

string string1Input = Console.ReadLine();

foreach(char oneCaracter in string1Input)
{
    if (oneCaracter == a)
    {
        sum3 = sum3 + 1;
        sum2 = sum2 + 1;
        sum = sum + 1;
    }
}

if (string1Input[string1Input.Length - 1] == i) 
{
    sum = sum - 10; sum2 = sum2-10; sum3 = sum3-55;
}